/*
 * Caelion Platform — admin UI brand layer
 *
 * Tokens copied verbatim from MightyMarmite/Caelion-Website/src/styles/global.css
 * so the platform visually matches the published brand at
 * caelion.consulting. Pico CSS provides the structural defaults
 * (forms, tables, buttons, semantic spacing); this file overrides the
 * surface — colours, type, spacing rhythm.
 *
 * Loaded AFTER Pico in the <head> so the cascade favours these rules.
 */

/* ── DESIGN TOKENS ────────────────────────────────────────────────── */
:root {
  /* Surfaces */
  --caelion-white:       #FFFFFF;
  --caelion-bg:          #F7F5F2;   /* cream */
  --caelion-bg-card:     #FFFFFF;
  --caelion-bg-dark:     #1A1A1A;   /* ink */
  --caelion-bg-dark-alt: #232323;
  --caelion-border:      #E2DDD8;
  --caelion-border-dark: #2E2E2E;

  /* Text */
  --caelion-text-primary:   #1A1A1A;
  --caelion-text-secondary: #555047;
  --caelion-text-muted:     #8C8478;
  --caelion-text-light:     #F7F5F2;
  --caelion-text-light-dim: #B5AFA8;

  /* Accent (gold) */
  --caelion-accent:       #B8935A;
  --caelion-accent-dark:  #96753F;
  --caelion-accent-light: #D4B07E;

  /* Type */
  --caelion-font-head: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --caelion-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI",
                       Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Rhythm */
  --caelion-nav-h: 64px;
  --caelion-max-w: 1200px;
  --caelion-gutter: clamp(20px, 4vw, 56px);

  /* Pico overrides — propagate brand into Pico's variable layer too,
     so default components (forms, tables, cards) inherit. */
  --pico-font-family-sans-serif: var(--caelion-font-body);
  --pico-font-family-serif: var(--caelion-font-head);
  --pico-primary: var(--caelion-bg-dark);
  --pico-primary-hover: var(--caelion-accent);
  --pico-primary-focus: rgba(184, 147, 90, 0.25);
  --pico-primary-inverse: var(--caelion-text-light);
  --pico-secondary: var(--caelion-text-secondary);
  --pico-background-color: var(--caelion-bg);
  --pico-card-background-color: var(--caelion-bg-card);
  --pico-card-sectioning-background-color: var(--caelion-bg-card);
  --pico-border-color: var(--caelion-border);
  --pico-color: var(--caelion-text-primary);
  --pico-h1-color: var(--caelion-text-primary);
  --pico-h2-color: var(--caelion-text-primary);
  --pico-h3-color: var(--caelion-text-primary);
  --pico-h4-color: var(--caelion-text-primary);
  --pico-muted-color: var(--caelion-text-muted);
  --pico-muted-border-color: var(--caelion-border);
}

/* ── BASE ─────────────────────────────────────────────────────────── */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
  background: var(--caelion-bg);
  color: var(--caelion-text-primary);
  font-family: var(--caelion-font-body);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.65;
}

/* Headings use the editorial serif */
h1, h2, h3, h4, h5, h6,
.editorial {
  font-family: var(--caelion-font-head);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--caelion-text-primary);
  line-height: 1.25;
}

h1 { font-size: clamp(28px, 3.6vw, 40px); font-weight: 400; }
h2 { font-size: clamp(22px, 2.6vw, 28px); }
h3 { font-size: 19px; }

/* hgroup — Pico already does this nicely; tighten the subtitle */
hgroup > p,
hgroup > h1 + p,
hgroup > h2 + p {
  color: var(--caelion-text-secondary);
  font-size: 0.95em;
  margin-top: 0.25rem;
}

/* ── HEADER + NAV ─────────────────────────────────────────────────── */
body > header.container {
  border-bottom: 1px solid var(--caelion-border);
  background: rgba(247, 245, 242, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding-top: 16px;
  padding-bottom: 16px;
  margin-bottom: 40px;
}

body > header nav {
  align-items: center;
  min-height: var(--caelion-nav-h);
}

body > header nav ul li a {
  font-family: var(--caelion-font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--caelion-text-secondary);
  transition: color 0.18s ease;
}

body > header nav ul li a:hover,
body > header nav ul li a.active {
  color: var(--caelion-text-primary);
  background: transparent;
}

/* Brand wordmark */
.brand {
  font-family: var(--caelion-font-head) !important;
  font-weight: 400 !important;
  font-size: 22px;
  letter-spacing: 0.08em;
  color: var(--caelion-text-primary);
  text-transform: uppercase;
}

.brand-accent {
  font-family: var(--caelion-font-body) !important;
  color: var(--caelion-accent);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-left: 8px;
  vertical-align: middle;
}

/* User label in the nav (e.g. "Display Name") */
nav ul li.muted,
nav ul li .nav-user {
  color: var(--caelion-text-muted);
  font-size: 13px;
}

/* ── LINKS ────────────────────────────────────────────────────────── */
a { color: var(--caelion-accent); }
a:hover { color: var(--caelion-accent-dark); }

/* Content area links should be quietly accented, not loud */
main a:not([role="button"]) {
  color: var(--caelion-accent);
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease;
}

main a:not([role="button"]):hover {
  border-bottom-color: var(--caelion-accent);
}

/* ── BUTTONS ──────────────────────────────────────────────────────── */
button,
[type="submit"],
a[role="button"] {
  font-family: var(--caelion-font-body);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.04em;
  border-radius: 2px;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

[role="button"].contrast,
button.contrast {
  background: var(--caelion-bg-dark);
  border-color: var(--caelion-bg-dark);
  color: var(--caelion-text-light);
}

[role="button"].contrast:hover,
button.contrast:hover {
  background: var(--caelion-accent);
  border-color: var(--caelion-accent);
  color: var(--caelion-text-light);
}

[role="button"].secondary,
button.secondary {
  background: transparent;
  border-color: var(--caelion-border-dark);
  color: var(--caelion-text-primary);
}

[role="button"].secondary:hover,
button.secondary:hover {
  border-color: var(--caelion-text-primary);
  background: transparent;
}

/* ── CARDS / ARTICLES ─────────────────────────────────────────────── */
article {
  background: var(--caelion-bg-card);
  border: 1px solid var(--caelion-border);
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
  margin-bottom: 24px;
}

article header {
  border-bottom: 1px solid var(--caelion-border);
  background: transparent;
  color: var(--caelion-text-primary);
  font-weight: 500;
}

article > h3,
article > h4 {
  margin-bottom: 12px;
}

/* Tile grid on the dashboard */
.grid > article {
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.grid > article:hover {
  border-color: var(--caelion-accent);
}

/* ── TABLES ───────────────────────────────────────────────────────── */
table {
  font-family: var(--caelion-font-body);
  font-size: 14px;
  width: 100%;
}

table th {
  background: var(--caelion-bg-dark);
  color: var(--caelion-text-light);
  font-family: var(--caelion-font-body);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 10px 12px;
  border: none;
}

table td {
  padding: 12px;
  border-bottom: 1px solid var(--caelion-border);
  vertical-align: top;
}

table tbody tr:hover {
  background: rgba(184, 147, 90, 0.05);
}

/* Monospace columns (UUIDs, slugs, etc.) */
table code,
.audit-row {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px;
  background: transparent;
  color: var(--caelion-text-secondary);
}

/* ── FORMS ────────────────────────────────────────────────────────── */
label {
  font-size: 13px;
  font-weight: 500;
  color: var(--caelion-text-primary);
  letter-spacing: 0.02em;
}

label small {
  display: block;
  color: var(--caelion-text-muted);
  font-weight: 400;
  font-size: 12px;
  margin-top: 4px;
}

input, select, textarea {
  font-family: var(--caelion-font-body);
  border-radius: 2px;
  border-color: var(--caelion-border);
  background: var(--caelion-bg-card);
}

input:focus, select:focus, textarea:focus {
  border-color: var(--caelion-accent);
  box-shadow: 0 0 0 3px rgba(184, 147, 90, 0.15);
}

/* ── UTILITY ──────────────────────────────────────────────────────── */
.muted {
  color: var(--caelion-text-muted);
  font-size: 0.92em;
}

small {
  color: var(--caelion-text-muted);
  font-size: 0.85em;
}

code {
  background: rgba(26, 26, 26, 0.04);
  color: var(--caelion-text-primary);
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.88em;
  padding: 1px 6px;
  border-radius: 2px;
}

/* AI DRAFT label used on auto-generated content */
.ai-draft-badge {
  display: inline-block;
  font-family: var(--caelion-font-body);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--caelion-accent-dark);
  background: rgba(184, 147, 90, 0.1);
  padding: 3px 10px;
  border: 1px solid var(--caelion-accent);
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: middle;
}

/* ── FOOTER ───────────────────────────────────────────────────────── */
body > footer.container {
  margin-top: 80px;
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid var(--caelion-border);
}

body > footer small {
  color: var(--caelion-text-muted);
  font-size: 12px;
  letter-spacing: 0.04em;
}


/* ============================================================ */
/* Morning brief — hero typography for the narrative-led home    */
/* ============================================================ */

.brief-header {
  margin: 2.5rem 0 3rem;
  border-bottom: 1px solid var(--caelion-divider, #E4DFD8);
  padding-bottom: 1.5rem;
}

.brief-title {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  letter-spacing: -0.01em;
  margin: 0 0 0.25rem;
  color: var(--caelion-ink, #1A1A1A);
}

.brief-date {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 1rem;
  color: var(--caelion-muted, #6B6B6B);
  letter-spacing: 0.02em;
  margin: 0;
}

.brief-empty {
  background: var(--caelion-cream, #F7F5F2);
  border: 1px solid var(--caelion-divider, #E4DFD8);
  padding: 2.5rem;
  margin: 1.5rem 0;
}

.brief-empty h2 {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-weight: 500;
  margin-top: 0;
}

.brief-section {
  margin: 0 0 4rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--caelion-divider, #E4DFD8);
  background: none;
  border-radius: 0;
}

.brief-section:last-of-type {
  border-bottom: none;
}

.brief-section-header {
  margin-bottom: 1.75rem;
}

.brief-ips-title {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-weight: 500;
  font-size: 1.875rem;
  letter-spacing: -0.005em;
  color: var(--caelion-ink, #1A1A1A);
  margin: 0 0 0.4rem;
}

.brief-ips-meta {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.875rem;
  color: var(--caelion-muted, #6B6B6B);
  margin: 0;
}

.brief-ips-meta code {
  font-size: 0.85em;
  background: var(--caelion-cream, #F7F5F2);
  padding: 0.1em 0.4em;
}

/* Status banners */
.brief-status {
  padding: 1.25rem 1.5rem;
  margin: 1.5rem 0 2rem;
  border-left: 3px solid var(--caelion-gold, #B8935A);
  background: var(--caelion-cream, #F7F5F2);
}

.brief-status p {
  margin: 0;
}

.brief-status p + p {
  margin-top: 0.6rem;
}

.brief-status-headline {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--caelion-ink, #1A1A1A);
}

.brief-status-compliant {
  border-left-color: #6B8E5A;       /* muted forest, brand-adjacent */
}

.brief-status-breach {
  border-left-color: #A8543C;       /* muted terracotta, brand-adjacent */
}

.brief-status-pending {
  border-left-color: var(--caelion-gold, #B8935A);
}

/* The narrative itself — generous serif, designed to be READ */

.brief-narrative {
  max-width: 42em;                 /* sub-700px line length, like book */
  margin: 2rem 0;
}

.brief-lead {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-size: 1.4rem;
  line-height: 1.55;
  color: var(--caelion-ink, #1A1A1A);
  margin: 0 0 2rem;
}

.brief-severity {
  margin: 1.75rem 0;
}

.brief-severity-label {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--caelion-gold, #B8935A);
  margin: 0 0 0.5rem;
}

.brief-severity p {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-size: 1.15rem;
  line-height: 1.65;
  color: var(--caelion-ink, #1A1A1A);
  margin: 0 0 0.5rem;
}

.brief-citations {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.8rem !important;
  color: var(--caelion-muted, #6B6B6B);
  line-height: 1.4 !important;
  margin-top: 0.3rem !important;
}

.brief-citations code {
  font-size: 0.85em;
  background: var(--caelion-cream, #F7F5F2);
  padding: 0.1em 0.4em;
}

.brief-actions {
  margin: 2.5rem 0 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--caelion-divider, #E4DFD8);
}

.brief-actions-label {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--caelion-gold, #B8935A);
  margin: 0 0 0.5rem;
}

.brief-actions p {
  font-family: var(--caelion-serif, "Cormorant Garamond", serif);
  font-size: 1.15rem;
  line-height: 1.65;
  margin: 0;
}

.brief-attribution {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.8rem;
  color: var(--caelion-muted, #6B6B6B);
  margin: 2rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--caelion-divider, #E4DFD8);
}

/* Disclosure for the violations table */

.brief-disclosure {
  margin: 2.5rem 0 1.5rem;
}

.brief-disclosure summary {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.875rem;
  color: var(--caelion-muted, #6B6B6B);
  cursor: pointer;
  padding: 0.4rem 0;
  letter-spacing: 0.02em;
}

.brief-disclosure summary:hover {
  color: var(--caelion-ink, #1A1A1A);
}

.brief-disclosure table {
  margin-top: 1rem;
  font-size: 0.875rem;
}

.brief-section-footer {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.875rem;
  margin: 2rem 0 0;
  color: var(--caelion-muted, #6B6B6B);
}

.brief-section-footer a {
  color: var(--caelion-ink, #1A1A1A);
}

.brief-footer {
  margin: 3rem 0 1rem;
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--caelion-divider, #E4DFD8);
}

.brief-footer p {
  font-family: var(--caelion-sans, "DM Sans", sans-serif);
  font-size: 0.875rem;
  color: var(--caelion-muted, #6B6B6B);
  margin: 0;
}
