/* Doc2Loc Elite — ui.css (CLEAN V3) */
:root{
  --primary:#4F46E5; --primary-hover:#4338CA; --primary-light:rgba(79,70,229,.10);
  --dark:#0F172A; --gray:#475569;
  --bg:#F8FAFC; --border:#E2E8F0; --white:#FFFFFF;
  --success:#10B981; --danger:#F43F5E;
  --r12:12px; --r18:18px; --r24:24px;
  --shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -1px rgba(0,0,0,.03);
  --font:'Inter',system-ui,sans-serif;

  /* compat legacy pages */
  --text: var(--dark);
  --muted: var(--gray);
  --card: var(--white);
  --text-dark: var(--dark);
  --text-gray: var(--gray);
  --sidebar: var(--white);
}

*{ box-sizing:border-box; }
html,body{ width:100%; height:100%; overflow-x:hidden; }
body{ margin:0; font-family:var(--font); background:var(--bg); color:var(--dark); line-height:1.5; }

/* Layout */
body{ display:flex; flex-direction:column; min-height:100vh; }
main{ flex:1; width:100%; padding:clamp(14px, 3vw, 28px); }

/* Cards */
.glass-card, .card-premium, .stat-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r24);
  box-shadow:var(--shadow);
}
.stat-card{ padding:16px 18px; }
.glass-card, .card-premium{ padding:18px 18px; }

/* Buttons */
.btn-indigo, .btn-primary{
  background:var(--primary);
  color:#fff;
  padding:12px 16px;
  border-radius:var(--r12);
  font-weight:800;
  border:none;
  cursor:pointer;
}
.btn-indigo:hover, .btn-primary:hover{ background:var(--primary-hover); }

.btn-secondary, .btn-mini{
  border:1px solid var(--border);
  background:var(--bg);
  padding:10px 12px;
  border-radius:var(--r12);
  font-weight:800;
  cursor:pointer;
}
.btn-mini-primary{ background:var(--primary); color:#fff; border-color:transparent; }

/* Icon buttons */
.btn-icon{
  width:42px; height:42px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--bg);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
}

/* Inputs */
input,select,textarea{
  width:100%;
  border:1px solid var(--border);
  border-radius:var(--r12);
  padding:12px 14px;
  background:#fff;
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(79,70,229,.10);
}

/* Topbar */
nav.topnav{
  position:sticky; top:0; z-index:999;
  width:100%;
  background:var(--white);
  border-bottom:1px solid var(--border);
  padding:12px 14px;
  display:flex; align-items:center; gap:12px;
}
nav.topnav{ position:sticky; }
nav.topnav .logo{
  text-decoration:none;
  font-weight:900;
  color:var(--primary);
  display:flex; align-items:center; gap:10px;
  white-space:nowrap;
}
nav.topnav #navMenu, nav.topnav .nav-menu, nav.topnav .nav-nav, nav.topnav .nav-links{
  display:flex; gap:8px; align-items:center; flex-wrap:wrap;
}
nav.topnav .nav-link{
  text-decoration:none;
  color:var(--gray);
  font-weight:800;
  padding:10px 12px;
  border-radius:14px;
  display:flex; align-items:center; gap:10px;
}
nav.topnav .nav-link:hover,
nav.topnav .nav-link.active{
  background:rgba(79,70,229,.08);
  color:var(--primary);
}
nav.topnav .logout{ margin-left:auto; color:var(--danger); }

/* Burger */
.nav-burger{
  display:none;
  width:42px; height:42px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--bg);
  cursor:pointer;
  align-items:center; justify-content:center;
}
.nav-overlay{
  display:none;
  position:fixed; inset:0;
  background:rgba(15,23,42,.35);
  z-index:998;
}
.nav-overlay.show{ display:block; }

/* MOBILE: dropdown fiable (pas bottom-sheet) */
@media (max-width:768px){
  nav.topnav{ padding:10px 12px; }
  main{ padding:14px 12px; }

  .nav-burger{ display:inline-flex; margin-left:auto; }
  nav.topnav .logout{ margin-left:0; }

  /* menu dropdown: hidden by default */
  nav.topnav #navMenu,
  nav.topnav .nav-menu,
  nav.topnav .nav-nav,
  nav.topnav .nav-links{
    display:none;
    position:absolute;
    left:0; right:0; top:100%;
    background:var(--white);
    border-bottom:1px solid var(--border);
    padding:10px 10px 12px;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    z-index:999;
  }
  nav.topnav.open #navMenu,
  nav.topnav.open .nav-menu,
  nav.topnav.open .nav-nav,
  nav.topnav.open .nav-links{
    display:flex;
  }
  nav.topnav .nav-link{ width:100%; justify-content:flex-start; padding:12px 12px; border-radius:16px; }

  /* density */
  .glass-card, .card-premium, .stat-card{ border-radius:18px; }
  .stat-card{ padding:12px 14px; }
  .glass-card, .card-premium{ padding:14px 14px; }
  .btn-icon{ width:38px; height:38px; border-radius:12px; }

  table{ min-width: 680px; }
}

/* DOC2LOC_MENU_Z_V4 */
nav.topnav{ z-index:999 !important; }
.nav-overlay{ z-index:998 !important; }
@media (max-width:768px){
  nav.topnav.open #navMenu{ z-index:1001 !important; }
}
