/* =========================================================
   GLOBAL FONT — INTER EVERYWHERE
   This file is loaded globally via layout.php, so make it authoritative.
   ========================================================= */

/* @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap");   */ 

/* =========================================================
   LOCAL INTER — CSP SAFE
   ========================================================= */

@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-Regular.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-Medium.woff2")  format("woff2"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-SemiBold.woff2")format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-Bold.woff2")    format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-ExtraBold.woff2")format("woff2"); font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:"Inter"; src:url("/assets/fonts/Inter-Black.woff2")   format("woff2"); font-weight:900; font-style:normal; font-display:swap; }


:root{
  --cad-font:
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    sans-serif;

  /* Scrollbar theme */
  --sb-track: rgba(15, 23, 42, .10);
  --sb-thumb: rgba(54, 99, 164, .85);
  --sb-thumb-hover: rgba(54, 99, 164, 1);
  --sb-thumb-border: rgba(255,255,255,.45);
}

/* Force Inter everywhere */
html, body{
  font-family: var(--cad-font) !important;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Kill rogue component fonts */
body *{
  font-family: inherit;
}

/* Clamp illegal weights used in inline styles across the app */
*[style*="font-weight:1000"]{ font-weight:900 !important; }
*[style*="font-weight:850"]{  font-weight:800 !important; }

/* =========================================================
   PORTAL MENU
   ========================================================= */

.cad-portal-menu{ position:relative; display:inline-block; }
.cad-portal-menu *{ box-sizing:border-box; }

.cad-portal-btn{
  background:#2563eb;
  border:none;
  border-radius:12px;
  padding:12px 16px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:800;
  color:#fff;
  box-shadow:0 4px 14px rgba(37,99,235,.35);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.cad-portal-btn:hover{
  filter:brightness(1.02);
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(37,99,235,.45);
}

.cad-hamburger{ display:flex; flex-direction:column; gap:4px; width:22px; }
.cad-hamburger span{ display:block; height:3px; background:#fff; border-radius:3px; transition:all .25s ease; }

.cad-arrow{ transition:transform .25s ease; font-size:14px; line-height:1; }

.cad-portal-btn.active .cad-arrow{ transform:rotate(180deg); }
.cad-portal-btn.active .cad-hamburger span:nth-child(1){ transform:rotate(45deg) translate(6px, 6px); }
.cad-portal-btn.active .cad-hamburger span:nth-child(2){ opacity:0; transform:translateX(10px); }
.cad-portal-btn.active .cad-hamburger span:nth-child(3){ transform:rotate(-45deg) translate(6px, -6px); }

.cad-portal-dd{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:280px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.15);
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);
  transition:all .25s cubic-bezier(.4,0,.2,1);
  z-index:999999;
}

.cad-portal-dd.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.cad-dd-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 14px;
  text-decoration:none;
  color:#0f172a;
  font-weight:700;
  border-radius:12px;
  position:relative;
  overflow:hidden;
}

.cad-dd-link::before{
  content:'';
  position:absolute;
  left:0; top:0;
  height:100%;
  width:4px;
  background:#2563eb;
  transform:translateX(-4px);
  transition:transform .18s ease;
}

.cad-dd-link:hover{
  background:#eff6ff;
  padding-left:18px;
  text-decoration:none;
}

.cad-dd-link:hover::before{ transform:translateX(0); }

.cad-ic{ font-size:18px; color:#2563eb; }

/* =========================================================
   DASHBOARD SCROLL FIX (global + layout-safe)
   ========================================================= */

html, body {
  height: auto !important;
  min-height: 100%;
  overflow: auto !important;
}

.auth-shell,
.app-shell,
.app-wrap,
.dashboard-wrap,
.dashboard-shell,
.main-shell {
  height: auto !important;
  min-height: 100vh;
  overflow: visible !important;
}

body.modal-open {
  overflow: hidden !important;
}

/* ---------- Dashboard Layout ---------- */

.dashboard-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 14px;
  align-items: start;
}

.dashboard-sidebar {
  position: sticky;
  top: 14px;
  align-self: start;
  max-height: calc(100vh - 28px);
  overflow: auto;
}

.dashboard-main {
  overflow: visible !important;
  min-height: 60vh;
}

.dashboard-main.scroll-pane,
.dashboard-content.scroll-pane {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
}

@media (max-width: 980px) {
  .dashboard-layout { grid-template-columns: 1fr; }
  .dashboard-sidebar {
    position: relative;
    top: auto;
    max-height: none;
    overflow: visible;
  }
}

/* =========================================================
   SCROLLBAR THEME (Chrome/Edge/Safari + Firefox)
   ========================================================= */

/* Firefox */
*{
  scrollbar-width: auto;
  scrollbar-color: var(--sb-thumb) var(--sb-track);
}

/* Chromium / Safari */
*::-webkit-scrollbar{
  width: 14px;
  height: 14px;
}

*::-webkit-scrollbar-track{
  background: var(--sb-track);
  border-radius: 999px;
}

*::-webkit-scrollbar-thumb{
  background: var(--sb-thumb);
  border-radius: 999px;
  border: 3px solid var(--sb-track);
}

*::-webkit-scrollbar-thumb:hover{
  background: var(--sb-thumb-hover);
}

*::-webkit-scrollbar-corner{
  background: var(--sb-track);
}

/* Optional: sidebar explicit */
.dashboard-sidebar{
  scrollbar-color: var(--sb-thumb) var(--sb-track);
}
.dashboard-sidebar::-webkit-scrollbar-thumb{
  background: var(--sb-thumb);
}

/* ---- GLOBAL BUTTONS (Members Portal) ---- */
a.btn, button.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  font-weight:950;
  text-decoration:none !important;
  border:1px solid transparent;
  line-height:1;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}

a.reg-primary, button.reg-primary{
  background:#2563eb;
  color:#fff !important;
  border-color:rgba(37,99,235,.45);
}

a.reg-ghost, button.reg-ghost{
  background:rgba(15,23,42,.04);
  color:#0f172a !important;
  border-color:rgba(148,163,184,.35);
}

a.btn:hover, button.btn:hover{
  text-decoration:none !important;
  filter:brightness(.98);
  transform:translateY(-1px);
}

a.btn:active, button.btn:active{
  transform:translateY(0);
  filter:brightness(.96);
}
