/* ClackDash Header: one-row brand / nav / actions, language dropdown, theme button */

.site-header {
  position: relative;
  z-index: 20;
  width: 100%;
  border-bottom: 1px solid var(--border);
  transition: opacity var(--transition-normal);
}

.header-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "brand nav actions";
  align-items: center;
  column-gap: var(--space-6);
  min-height: 64px;
}

.header-brand-group { grid-area: brand; display: flex; align-items: center; }

.site-brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--tap);
  color: var(--text);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.025em;
  text-decoration: none;
}

.site-brand:hover { text-decoration: none; }

.brand-icon { flex-shrink: 0; }

.brand-name { color: var(--text); transition: color var(--transition-fast); }

.site-brand:hover .brand-name { color: var(--accent); }

/* Main navigation: always a single row */
.site-nav {
  grid-area: nav;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-wrap: nowrap;
  white-space: nowrap;
  min-width: 0;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-pill);
  color: var(--sub);
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: none;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.site-nav a:hover { color: var(--text); background-color: var(--surface); }

.site-nav a[aria-current="page"] {
  color: var(--text);
  background-color: var(--surface);
  box-shadow: inset 0 0 0 1px var(--border);
}

.header-actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

/* Language dropdown (<details>; links stay in the DOM for crawlers and no-JS) */
.lang-menu { position: relative; }

.lang-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  height: 40px;
  padding: 0 var(--space-2) 0 var(--space-3);
  border-radius: var(--radius-pill);
  color: var(--sub);
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.lang-menu-toggle::-webkit-details-marker { display: none; }

.lang-menu-toggle:hover,
.lang-menu[open] .lang-menu-toggle { color: var(--text); background-color: var(--surface); }

.lang-menu-chevron {
  width: 6px;
  height: 6px;
  margin: 0 4px 3px 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--transition-fast);
}

.lang-menu[open] .lang-menu-chevron { transform: translateY(3px) rotate(-135deg); }

.lang-menu-panel {
  position: absolute;
  top: calc(100% + var(--space-2));
  right: 0;
  z-index: 30;
  min-width: 220px;
  max-width: calc(100vw - 2 * var(--space-4));
  padding: var(--space-2);
  background-color: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
}

.lang-menu-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  list-style: none;
}

.lang-menu-list a {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-sm);
  color: var(--text);
  font-size: var(--fs-sm);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition-fast);
}

.lang-menu-list a:hover { background-color: var(--surface); }

.lang-menu-list a[aria-current="page"] {
  background-color: var(--accent-soft);
  box-shadow: inset 2px 0 0 var(--accent);
  font-weight: 600;
}

/* Medium widths: nav drops to its own scrollable row under brand + actions */
@media (max-width: 900px) {
  .header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand actions"
      "nav nav";
    min-height: 0;
    padding-top: var(--space-2);
  }
  .site-nav {
    margin: 0 calc(-1 * var(--space-2));
    padding: var(--space-1) var(--space-2) var(--space-2);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    /* Fade the trailing edge so a cut-off item reads as "scroll for more" */
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
  }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav a { flex: none; min-height: var(--tap); }
  .site-nav a:last-child { margin-right: var(--space-5); }
}

@media (max-width: 480px) {
  .site-brand { font-size: 1.125rem; }
  .brand-icon { width: 24px; height: 24px; }
  .btn-icon,
  .lang-menu-toggle { height: var(--tap); min-width: var(--tap); }
  .site-nav a { padding: 0 var(--space-2); font-size: 0.84rem; }
}
