:root {
  --fd-content-max: 1120px;
  --fd-page-pad: clamp(16px, 3vw, 28px);
  --fd-section-gap: clamp(18px, 2.5vw, 28px);
  --fd-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
/* :not(body) — layout.php emits <body class="desk fd-page fd-page--list">, so a
   bare .fd-page here also matched the BODY element, wrapping the whole
   document in the content column's own padding and 1120px max-width. That
   showed up as a dead band above the sticky top nav. */
.fd-main, .workspace-main, main.fd-content, .fd-page:not(body) {
  max-width: var(--fd-content-max);
  margin-left: auto; margin-right: auto;
  padding: var(--fd-page-pad);
}
.fd-page-header, .ui-page-header {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 12px 20px; margin: 0 0 var(--fd-section-gap); padding-bottom: 14px;
  border-bottom: 1px solid var(--fd-border);
}
.fd-page-header h1, .ui-page-header h1 {
  margin: 0; font-size: clamp(1.35rem, 2.2vw, 1.75rem); font-weight: 650;
  letter-spacing: -0.025em; color: var(--fd-text);
}
.fd-page-header .sub, .ui-page-header .sub, .fd-page-header p, .ui-page-header p {
  margin: 6px 0 0; color: var(--fd-text-dim); font-size: 0.92rem; max-width: 40rem;
}
.fd-eyebrow {
  display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--fd-accent); margin-bottom: 6px;
}
.fd-card, .ui-panel, .panel, .news-card, .stat-card {
  background: var(--fd-surface); border: 1px solid var(--fd-border);
  border-radius: 10px; color: var(--fd-text);
}
.fd-btn, button.primary, a.primary, .btn-primary {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px;
  border-radius: 8px; font-weight: 600; border: none; cursor: pointer;
  background: linear-gradient(180deg, var(--fd-accent-bright), var(--fd-accent));
  color: var(--fd-on-accent) !important; text-decoration: none;
}
a.fd-btn:not(.primary) {
  background: transparent; color: var(--fd-text) !important;
  border: 1px solid var(--fd-border-strong);
}
.fd-engage-tip {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px;
  padding: 10px 14px; margin-bottom: 18px; border-radius: 8px;
  background: var(--fd-accent-soft); border: 1px solid var(--fd-glass-border);
  font-size: 0.85rem; color: var(--fd-text-soft);
}
.fd-engage-tip strong { color: var(--fd-accent); }
.fd-empty {
  text-align: center; padding: 48px 20px; border: 1px dashed var(--fd-border-strong);
  border-radius: 10px; background: var(--fd-bg-subtle); color: var(--fd-text);
}
.fd-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.fd-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 900px) { .fd-grid-2, .fd-grid-3 { grid-template-columns: 1fr; } }
table.fd-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; color: var(--fd-text); }
table.fd-table th { text-align: left; font-size: 0.72rem; text-transform: uppercase; color: var(--fd-text-dim); padding: 10px 12px; border-bottom: 1px solid var(--fd-border); }
table.fd-table td { padding: 12px; border-bottom: 1px solid var(--fd-border-soft); color: var(--fd-text); }
input[type="text"], input[type="search"], input[type="email"], input[type="password"], select, textarea {
  background: var(--fd-bg-soft); border: 1px solid var(--fd-border); color: var(--fd-text);
  border-radius: 8px; padding: 10px 12px;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--fd-accent); box-shadow: 0 0 0 3px var(--fd-accent-soft);
}
