/* K&O Dashboard shell - V37
   Presentation/navigation only. Application and security logic remains in PHP/API files. */
:root{
  --ko-dashboard-sidebar:220px;
  --ko-dashboard-sidebar-collapsed:62px;
  --ko-navbar-height:58px;
}

/* Compact dashboard topbar. The public/landing header remains governed by style.css. */
.dashboard-topbar{
  min-height:var(--ko-navbar-height);
  height:var(--ko-navbar-height);
  padding-top:0 !important;
  padding-bottom:0 !important;
  box-shadow:0 3px 16px rgba(0,0,0,.14);
  position:sticky !important;
  top:0 !important;
  z-index:1040;
  overflow:visible !important;
}
.dashboard-topbar .container-fluid{height:100%;display:flex;align-items:center;min-width:0;}
.dashboard-topbar .navbar-brand{font-size:1.35rem !important;line-height:1;white-space:nowrap;flex:0 0 auto;}
.dashboard-topbar .brand-logo{height:38px;width:38px;}
.dashboard-topbar .navbar-collapse{display:flex !important;align-items:center;flex:1 1 auto;min-width:0;}
.dashboard-topbar .navbar-nav{flex:0 0 auto;}
.dashboard-topbar .nav-link{padding:.35rem .5rem;}
.dashboard-search{min-width:160px;max-width:520px;width:100%;flex:1 1 420px;}
.dashboard-topbar .search-input{height:38px;}
.dashboard-topbar .btn-ko{height:38px;}
.dashboard-topbar .sidebar-toggle{height:34px;width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}

.notification-bell{font-size:1.15rem;display:inline-flex;align-items:center;justify-content:center;}
.notification-bell-wrap{position:relative;display:inline-flex;line-height:1;}
.notification-count-floating{position:absolute;top:-8px;right:-10px;font-size:.58rem;line-height:1;min-width:17px;height:17px;padding:.25rem .3rem;border:2px solid #0f172a;display:flex;align-items:center;justify-content:center;}
.user-menu-trigger{font-size:1.5rem !important;line-height:1;display:inline-flex;align-items:center;gap:.25rem;}
.user-menu-caret{font-size:.62rem;opacity:.85;margin-top:.2rem;}
.user-popover{width:290px;border:0;border-radius:12px;}
.user-popover-icon{width:38px;height:38px;border-radius:50%;background:#e2e8f0;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.user-popover-detail{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;padding:.55rem 0;color:#475569;}
.user-popover-detail>i{width:18px;margin-top:.15rem;color:#64748b;}
.user-popover-detail strong{color:#1e293b;}
.research-location-row .form-select{font-size:.82rem;}

/* Dashboard shell */
.app-shell{position:relative;min-height:calc(100vh - var(--ko-navbar-height));}
.app-sidebar{display:block !important;visibility:visible !important;position:fixed !important;left:0;top:var(--ko-navbar-height);bottom:0;width:var(--ko-dashboard-sidebar);height:auto;background:#0f172a !important;color:#cbd5e1;z-index:1030;border-right:1px solid #1e293b;overflow:hidden;transition:width .2s ease,transform .2s ease;}
.sidebar-inner{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;}
.sidebar-heading{min-height:52px;display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;border-bottom:1px solid #1e293b;font-weight:700;color:#fff;flex:0 0 auto;}
.sidebar-role-icon{width:30px;height:30px;border-radius:8px;background:#1e293b;display:inline-flex;align-items:center;justify-content:center;color:var(--ko-primary);flex:0 0 auto;}
.sidebar-nav{display:block !important;padding:.55rem .5rem 1rem;overflow-y:auto !important;overflow-x:hidden !important;flex:1 1 auto;min-height:0;scrollbar-width:thin;}
.sidebar-link{display:flex !important;width:100%;align-items:center;gap:.65rem;color:#cbd5e1 !important;text-decoration:none !important;padding:.58rem .65rem;margin:.14rem 0;border-radius:8px;white-space:nowrap;transition:background .15s,color .15s;font-weight:500;font-size:.9rem;}
.sidebar-link i{width:18px;min-width:18px;text-align:center;flex:0 0 18px;}
.sidebar-link:hover{background:#1e293b !important;color:#fff !important;}
.sidebar-link.active{background:#e2f8fb !important;color:#0f172a !important;font-weight:700;}
.mode-zerotrust .sidebar-link.active{background:#dcfce7 !important;color:#14532d !important;}
.sidebar-link .badge{font-size:.65rem;margin-left:auto;}
.sidebar-label{display:inline;overflow:hidden;text-overflow:ellipsis;}

.app-content{margin-left:var(--ko-dashboard-sidebar) !important;min-height:calc(100vh - var(--ko-navbar-height));transition:margin-left .2s ease;display:flex;flex-direction:column;}
.app-main{min-width:0;flex:1 1 auto;width:100%;}
.app-main>.container{max-width:1320px;}
.app-content>.site-footer{margin-top:auto !important;}

/* Collapsed desktop sidebar */
.sidebar-collapsed .app-sidebar{width:var(--ko-dashboard-sidebar-collapsed) !important;}
.sidebar-collapsed .app-content{margin-left:var(--ko-dashboard-sidebar-collapsed) !important;}
.sidebar-collapsed .sidebar-heading{justify-content:center;padding-left:.35rem;padding-right:.35rem;}
.sidebar-collapsed .sidebar-link{justify-content:center;padding-left:.5rem;padding-right:.5rem;}
.sidebar-collapsed .sidebar-label{display:none;}
.sidebar-collapsed .sidebar-link .badge{display:none;}
.sidebar-toggle{background:#1e293b;color:#fff;border:1px solid #334155;}
.sidebar-toggle:hover{background:#334155;color:#fff;}

/* Footer is inside the dashboard content column, so it never sits underneath the fixed sidebar. */
.app-content>.site-footer{width:100%;}

/* Mobile drawer */
@media(max-width:991.98px){
  .dashboard-topbar{height:58px;min-height:58px;}
  .dashboard-topbar .navbar-brand{font-size:1.15rem !important;}
  .dashboard-topbar .brand-logo{height:34px;width:34px;}
  .dashboard-topbar .navbar-collapse{display:flex !important;flex-basis:auto !important;}
  .dashboard-search{min-width:120px;max-width:320px;flex:1 1 220px;}
  .app-sidebar{top:58px;width:260px !important;transform:translateX(-105%);box-shadow:8px 0 25px rgba(0,0,0,.18);}
  .app-content,.sidebar-collapsed .app-content{margin-left:0 !important;}
  .app-shell.sidebar-mobile-open .app-sidebar{transform:translateX(0);}
  .sidebar-collapsed .app-sidebar{width:260px !important;}
  .sidebar-collapsed .sidebar-label{display:inline;}
  .sidebar-collapsed .sidebar-link{justify-content:flex-start;}
  .sidebar-collapsed .sidebar-heading{justify-content:flex-start;padding:.7rem .85rem;}
  .dashboard-sidebar-backdrop{position:fixed;inset:58px 0 0 0;background:rgba(0,0,0,.35);z-index:1025;display:none;}
  .app-shell.sidebar-mobile-open .dashboard-sidebar-backdrop{display:block;}
  .app-main>.container{max-width:100%;}
}
@media(max-width:575.98px){
  .dashboard-topbar .navbar-brand .text-ko-cyan{display:none;}
  .dashboard-topbar .navbar-brand{font-size:1.05rem !important;}
  .dashboard-topbar .container-fluid{padding-left:.45rem !important;padding-right:.45rem !important;gap:.2rem;}
  .dashboard-topbar .navbar-brand{margin-right:.25rem !important;}
  .dashboard-search{min-width:0;max-width:none;flex:1 1 auto;margin-left:.25rem !important;margin-right:.25rem !important;}
  .dashboard-search .search-input{height:36px;}
  .dashboard-search .btn-ko{height:36px;width:42px;padding:0;}
  .dashboard-topbar .navbar-nav{gap:0 !important;}
  .notification-bell{padding-left:.35rem !important;padding-right:.35rem !important;}
  .user-menu-trigger{padding-left:.35rem !important;padding-right:.35rem !important;}
  .user-popover{width:min(290px,calc(100vw - 24px));}
  .app-main>.container,.app-main>.container-fluid{padding-left:.75rem;padding-right:.75rem;}
  .app-main .card{overflow:hidden;}
}

.swal2-container{z-index:2000!important;}

@media(max-width:380px){
  .dashboard-topbar .brand-logo{height:30px;width:30px;}
  .dashboard-topbar .navbar-brand{font-size:.95rem !important;}
  .dashboard-search{max-width:150px;}
  .dashboard-search .search-input{font-size:.82rem;}
  .dashboard-search .btn-ko{width:38px;}
  .notification-bell{font-size:1.05rem;}
  .user-menu-trigger{font-size:1.3rem !important;}
}
