/* ═══════════════════════════════════════════════════════════════════════════
   Shared Navigation — Top Navbar + Footer
   Colors: product-theme.css tokens only (data-theme dark|light)
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --ghm-sidebar-w:236px;
  --ghm-topbar-h:50px;
}

.ghm-navbar{
  position:fixed;top:0;left:0;right:0;z-index:9000;
  background:var(--pt-nav-bg);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--pt-border);
  padding:0 18px;
  display:flex;align-items:center;gap:0;
  height:var(--ghm-topbar-h);
  font-family:var(--pt-font);
  box-shadow:var(--pt-shadow-sm);
  color:var(--pt-nav-text);
}
body.ghm-has-sidebar .ghm-navbar{left:var(--ghm-sidebar-w)}

.ghm-sidebar{
  position:fixed;top:0;left:0;bottom:0;z-index:9001;
  width:var(--ghm-sidebar-w);
  background:var(--pt-surface);
  border-right:1px solid var(--pt-border);
  overflow-x:hidden;
  overflow-y:auto;
  padding:10px 8px 16px;
  font-family:var(--pt-font);
  color:var(--pt-nav-text);
}
.ghm-acc{margin:0 0 2px}
.ghm-acc-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 10px;border:none;border-radius:8px;
  background:transparent;color:var(--pt-text-muted);
  font:inherit;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  cursor:pointer;text-align:left;
}
.ghm-acc-btn:hover{background:var(--pt-primary-dim);color:var(--pt-nav-text)}
.ghm-acc-chev{font-size:10px;opacity:.7;transition:transform .15s}
.ghm-acc.open .ghm-acc-chev{transform:rotate(180deg)}
.ghm-acc-panel{display:flex;flex-direction:column;gap:1px;padding:0 0 6px}
.ghm-acc-panel[hidden]{display:none}
.ghm-sidebar a,
.ghm-acc-link,
.ghm-acc-single-link{
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;border-radius:8px;
  font-size:13px;font-weight:600;
  color:var(--pt-text-muted);text-decoration:none;
  border:1px solid transparent;
  white-space:nowrap;
}
.ghm-sidebar a:hover,
.ghm-acc-link:hover,
.ghm-acc-single-link:hover{
  color:var(--pt-nav-text);background:var(--pt-primary-dim);border-color:var(--pt-border);text-decoration:none;
}
.ghm-sidebar a.active,
.ghm-acc-link.active,
.ghm-acc-single-link.active{
  color:var(--pt-accent);background:var(--pt-accent-dim);border-color:var(--pt-accent-border);
}
.ghm-acc-single-link{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--pt-text-muted)}
.ghm-nl-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}
.ghm-nl-label{overflow:visible;text-overflow:clip;white-space:nowrap}

.ghm-navbar .ghm-brand{
  display:flex;align-items:center;gap:8px;
  text-decoration:none;color:var(--pt-nav-text);
  font-weight:900;font-size:15px;letter-spacing:.3px;
  padding-right:16px;margin-right:4px;
  border-right:1px solid var(--pt-border);
  flex-shrink:0;white-space:nowrap;
}
.ghm-navbar .ghm-brand .ghm-logo{font-size:18px}
.ghm-navbar .ghm-brand:hover{color:var(--pt-accent);text-decoration:none}

.ghm-navbar .ghm-nav-links{display:none}

.ghm-navbar .ghm-nav-link{
  display:flex;align-items:center;gap:5px;
  padding:7px 12px;border-radius:var(--pt-radius-sm);
  font-size:12.5px;font-weight:650;
  color:var(--pt-text-muted);text-decoration:none;
  white-space:nowrap;
  border:1px solid transparent;
  transition:color .15s ease, background .15s ease, border-color .15s ease;
}
.ghm-navbar .ghm-nav-link:hover{
  color:var(--pt-nav-text);background:var(--pt-primary-dim);border-color:var(--pt-border);text-decoration:none;
}
.ghm-navbar .ghm-nav-link.active{
  color:var(--pt-accent);background:var(--pt-accent-dim);border-color:var(--pt-accent-border);
}
.ghm-navbar .ghm-nav-link .ghm-nl-icon{font-size:14px;flex-shrink:0}

.ghm-navbar .ghm-nav-right{
  display:flex;align-items:center;gap:6px;
  margin-left:auto;flex-shrink:0;
  padding-left:8px;
}

.ghm-navbar .ghm-nav-btn{
  display:flex;align-items:center;gap:5px;
  padding:7px 12px;border-radius:var(--pt-radius-sm);
  font-size:12px;font-weight:700;
  cursor:pointer;white-space:nowrap;
  border:1px solid var(--pt-border);
  background:var(--pt-surface-2);
  color:var(--pt-nav-text);text-decoration:none;
  font-family:inherit;
  transition:color .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.ghm-navbar .ghm-nav-btn:hover{border-color:var(--pt-primary-border);background:var(--pt-primary-dim);text-decoration:none}
.ghm-navbar .ghm-nav-btn.save{
  background:var(--pt-st-active-bg);border-color:var(--pt-st-active-bd);color:var(--pt-st-active-fg);
}
.ghm-navbar .ghm-nav-btn.save:hover{filter:brightness(1.05)}
.ghm-navbar .ghm-nav-btn.ghm-nav-btn-primary{
  background:var(--pt-primary-dim);
  border-color:var(--pt-primary-border);
  color:var(--pt-primary);
}
.ghm-navbar .ghm-nav-btn.ghm-theme-btn{
  width:38px;height:38px;min-width:38px;justify-content:center;padding:0;font-size:1rem;line-height:1;
  flex-shrink:0;position:relative;z-index:1;border-radius:10px;
}

.ghm-guest-auth{display:flex;align-items:center;gap:6px}

.ghm-user-chip{
  display:flex;align-items:center;gap:6px;
  padding:3px 6px 3px 3px;
  border-radius:999px;
  border:1px solid var(--pt-border);
  background:var(--pt-surface-2);
  flex-shrink:0;max-width:min(240px, 32vw);
}
.ghm-user-avatar{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pt-primary),var(--pt-tp-tmgd-fg));
  color:var(--pt-accent-contrast,#fff);display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.72rem;
}
.ghm-user-meta{
  display:flex;flex-direction:column;min-width:0;line-height:1.15;
}
.ghm-user-name{
  font-size:11px;font-weight:600;color:var(--pt-nav-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ghm-user-role{
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--pt-text-muted);
}
.ghm-user-logout{
  background:transparent;border:none;color:var(--pt-text-muted);
  font-size:10px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:999px;
  font-family:inherit;flex-shrink:0;transition:all .15s;
}
.ghm-user-logout:hover{background:var(--pt-danger);color:var(--pt-accent-contrast,#fff)}

.ghm-hamburger{
  display:none;
  flex-direction:column;gap:4px;
  padding:8px;cursor:pointer;border:none;background:none;
  margin-left:auto;
}
.ghm-hamburger span{display:block;width:18px;height:2px;background:var(--pt-text-muted);border-radius:1px;transition:.2s}

.ghm-mobile-drawer{
  display:none;
  position:fixed;top:50px;left:0;right:0;bottom:0;
  background:var(--pt-bg);
  z-index:8999;
  padding:16px;
  overflow-y:auto;
  flex-direction:column;gap:4px;
}
.ghm-mobile-drawer.open{display:flex}
.ghm-mobile-drawer .ghm-nav-link{
  padding:12px 14px;font-size:14px;border-radius:10px;
  border:1px solid var(--pt-border);
}
.ghm-mobile-drawer .ghm-nav-link:hover{background:var(--pt-primary-dim)}
.ghm-mobile-drawer .ghm-drawer-section{
  font-size:11px;color:var(--pt-text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;
  padding:12px 14px 4px;
}

.ghm-footer{
  border-top:1px solid var(--pt-border);
  background:var(--pt-surface);
  padding:24px 20px 28px;
  margin-top:48px;
  font-family:var(--pt-font);
}
.ghm-footer-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;
}
.ghm-footer-col h4{
  font-size:11px;color:var(--pt-text-muted);font-weight:800;text-transform:uppercase;letter-spacing:.4px;
  margin-bottom:10px;
}
.ghm-footer-col a{
  display:flex;align-items:center;gap:6px;
  font-size:12px;color:var(--pt-muted-2);text-decoration:none;
  padding:4px 0;transition:color .15s;
}
.ghm-footer-col a:hover{color:var(--pt-nav-text);text-decoration:none}
.ghm-footer-col .ghm-fl-icon{font-size:13px}
.ghm-footer-bottom{
  max-width:1200px;margin:14px auto 0;
  padding-top:12px;border-top:1px solid var(--pt-border);
  display:flex;align-items:center;justify-content:space-between;
  font-size:11px;color:var(--pt-muted-2);
}
.ghm-footer-bottom a{color:var(--pt-muted-2);text-decoration:none;font-size:11px}
.ghm-footer-bottom a:hover{color:var(--pt-text-muted)}

[data-theme="light"] .ghm-navbar .ghm-nav-link.active {
  color: var(--pt-primary);
  background: var(--pt-primary-dim);
  border-color: var(--pt-primary-border);
}
[data-theme="light"] .ghm-navbar .ghm-brand:hover,
[data-theme="light"] .ghm-navbar .ghm-nav-link:hover,
[data-theme="light"] .ghm-footer-col a:hover {
  color: var(--pt-primary);
}

/* Desktop chrome pad — MUST stay above mobile @media so ≤860px can zero it */
body.ghm-has-navbar{padding-top:var(--ghm-topbar-h)}
body.ghm-has-sidebar{padding-left:var(--ghm-sidebar-w)}
body.ghm-has-sidebar #stickyDock{left:var(--ghm-sidebar-w)}

@media(max-width:860px){
  .ghm-navbar .ghm-nav-links{display:none}
  body.ghm-has-sidebar .ghm-navbar{left:0}
  .ghm-sidebar{display:none}
  .ghm-hamburger{display:flex}
  .ghm-navbar .ghm-nav-right .ghm-nav-btn:not(.save):not(.ghm-theme-btn){display:none}
  .ghm-user-chip .ghm-user-meta{display:none}
  .ghm-footer-inner{grid-template-columns:1fr 1fr;gap:16px}
  /* Overlay nav: main stays full width (was overridden by rules after this block) */
  body.ghm-has-sidebar,
  body.ghm-has-sidebar.pt-app-chrome,
  body.pt-app-chrome.ghm-has-sidebar{
    padding-left:0!important;
  }
  body.ghm-has-sidebar #stickyDock{left:0!important}
}
@media(max-width:520px){
  .ghm-navbar{padding:0 10px}
  .ghm-navbar .ghm-brand{font-size:13px;padding-right:10px}
  .ghm-navbar .ghm-brand .ghm-brand-text{display:none}
  .ghm-navbar .ghm-nav-right{gap:4px;padding-left:4px}
  .ghm-navbar .ghm-nav-btn.save{padding:6px 10px;font-size:11px}
  .ghm-navbar .ghm-user-chip{max-width:none;padding:2px 4px 2px 2px}
  .ghm-navbar .ghm-user-logout{padding:4px 5px;font-size:9px}
}
@media(max-width:480px){
  .ghm-footer-inner{grid-template-columns:1fr}
  .ghm-footer-bottom{flex-direction:column;gap:6px;text-align:center}
}

@media print{
  .ghm-navbar,.ghm-sidebar,.ghm-mobile-drawer,.ghm-hamburger{display:none!important}
  body.ghm-has-navbar,body.ghm-has-sidebar{padding:0!important}
}

body.ghm-has-navbar .header-nav,
body.ghm-has-navbar .header-actions{display:none!important}
