/* Lumen Agency — magazine look carried over from zzz: black header bars,
   white pages, heavy Archivo headings, monospaced uppercase meta, square
   corners, underlined links. Same tokens as frontend/app/globals.css. */
:root {
  --background: #ffffff;
  --foreground: #000000;
  --muted-foreground: #5f5f5f;
  --meta: #7a7a7a;
  --paper: #f4f5f9;
  --border: #e3e3e3;
  --verified: #007a3d;
  --warning: #b35c00;
  --destructive: #e00000;
  --font-body: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-mono: 'Source Code Pro', ui-monospace, monospace;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--background); color: var(--foreground); font-family: var(--font-body);
       font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 .5rem; }
h1 { font-size: 2.4rem; font-weight: 900; } h2 { font-size: 1.5rem; } h3 { font-size: 1.15rem; }
a { color: var(--foreground); text-decoration: underline; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
p { margin: 0 0 .75rem; }
.muted { color: var(--muted-foreground); }
.small { font-size: .88rem; }
.meta { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--meta); }
.logo { font-weight: 900; font-size: 2rem; letter-spacing: -0.06em; line-height: 1; text-decoration: none; color: inherit; }
.logo:hover { text-decoration: none; }
.rule-head { border-bottom: 2px solid var(--foreground); padding-bottom: .5rem; margin-bottom: 1rem; }

/* layout */
.topnav { background: var(--foreground); color: var(--background); display: flex; align-items: center; gap: 1.5rem;
          padding: .9rem 1.25rem; flex-wrap: wrap; }
.topnav a { color: var(--background); text-decoration: none; font-weight: 800; }
.topnav a:hover { text-decoration: underline; }
.topnav nav { display: flex; gap: 1.25rem; margin-left: auto; align-items: center; flex-wrap: wrap; }
.topnav .btn { background: var(--background); color: var(--foreground); border-color: var(--background); }
.container { max-width: 1080px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
.admin-shell { display: flex; min-height: 100vh; }
.sidebar { width: 230px; flex-shrink: 0; background: var(--foreground); color: var(--background);
           padding: 1.25rem 1rem; display: flex; flex-direction: column; gap: .15rem; }
.sidebar .logo { color: var(--background); padding: .2rem .5rem .6rem; font-size: 1.75rem; }
.sidebar .section { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase;
                    color: #9a9a9a; margin: 1.1rem .5rem .3rem; }
.sidebar a { color: var(--background); padding: .45rem .5rem; display: block; text-decoration: none; font-weight: 700; }
.sidebar a.active { background: var(--background); color: var(--foreground); }
.sidebar a:hover:not(.active) { text-decoration: underline; }
.admin-main { flex: 1; min-width: 0; }
.admin-main .container { max-width: 1200px; }

/* components */
.card { background: var(--background); border: 1px solid var(--border); padding: 1.25rem; margin-bottom: 1rem; }
.card-title { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .75rem; flex-wrap: wrap; }
.grid { display: grid; gap: 1rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.split { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; }
.row { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border: 1px solid var(--foreground);
       background: var(--background); color: var(--foreground); padding: .6rem 1.05rem; border-radius: 0;
       font: 800 .92rem var(--font-body); cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--foreground); color: var(--background); text-decoration: none; }
.btn-primary { background: var(--foreground); color: var(--background); }
.btn-primary:hover { background: #333; border-color: #333; }
.btn-danger { color: var(--destructive); border-color: var(--destructive); }
.btn-danger:hover { background: var(--destructive); color: var(--background); }
.btn-sm { padding: .35rem .7rem; font-size: .82rem; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .35; cursor: not-allowed; }
.btn.menu-toggle { display: none; margin-bottom: .75rem; }
.pill { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .45rem; font-family: var(--font-mono);
        font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap;
        border: 1px solid currentColor; color: var(--meta); }
.pill-verified, .pill-approved, .pill-signed { color: var(--verified); }
.pill-submitted, .pill-pending, .pill-reviewing, .pill-shortlisted { color: var(--foreground); }
.pill-new { background: var(--foreground); border-color: var(--foreground); color: var(--background); }
.pill-changes_requested { color: var(--warning); }
.pill-rejected, .pill-suspended, .pill-declined { color: var(--destructive); }
.flash { padding: .75rem 1rem; margin-bottom: 1rem; border-left: 4px solid var(--foreground); background: var(--paper); font-weight: 500; }
.flash-success { border-color: var(--verified); } .flash-danger { border-color: var(--destructive); } .flash-warning { border-color: var(--warning); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; }
th, td { text-align: left; padding: .7rem .5rem; border-bottom: 1px solid var(--border); vertical-align: top; }
th { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--meta);
     font-weight: 600; border-bottom: 2px solid var(--foreground); }
td > a:first-child { font-weight: 800; }
.tabs { display: flex; gap: 0; flex-wrap: wrap; margin-bottom: 1.25rem; border-bottom: 2px solid var(--foreground); }
.tabs a { padding: .55rem .9rem; color: var(--foreground); font-weight: 800; font-size: .92rem; text-decoration: none; }
.tabs a.active { background: var(--foreground); color: var(--background); }
.tabs a:hover:not(.active) { text-decoration: underline; }
.stat { font-weight: 900; font-size: 2.4rem; letter-spacing: -0.03em; line-height: 1; margin-top: .35rem; }
dl.facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0 1.25rem; margin: 0; }
dl.facts dt { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
              color: var(--meta); padding: .55rem 0; border-bottom: 1px solid var(--border); }
dl.facts dd { margin: 0; overflow-wrap: anywhere; padding: .45rem 0; border-bottom: 1px solid var(--border); }

/* forms */
.form-group { margin-bottom: 1rem; }
label { display: block; font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: .08em;
        text-transform: uppercase; color: var(--foreground); margin-bottom: .35rem; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=url], input[type=file], select, textarea {
  width: 100%; background: var(--background); color: var(--foreground); border: 1px solid var(--foreground);
  border-radius: 0; padding: .65rem .75rem; font: 400 1rem var(--font-body); }
input:focus, select:focus, textarea:focus { outline: 3px solid var(--foreground); outline-offset: -1px; }
textarea { min-height: 110px; resize: vertical; }
.check { display: flex; gap: .55rem; align-items: flex-start; font-family: var(--font-body); font-size: .95rem;
         letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--foreground); }
.check input { margin-top: .3rem; accent-color: var(--foreground); }
.checks { display: flex; flex-wrap: wrap; gap: .45rem 1rem; }
.field-error { color: var(--destructive); font-size: .85rem; margin-top: .25rem; }
.help { font-size: .85rem; color: var(--muted-foreground); margin-top: .3rem; }
.filters { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 15rem) auto 1fr auto; gap: .75rem; align-items: end; margin-bottom: 1rem; }

/* auth card */
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem 1rem; background: var(--paper); }
.auth-card { width: 100%; max-width: 440px; border: 0; border-top: 6px solid var(--foreground); padding: 1.75rem; }
.auth-card .logo { display: inline-block; margin-bottom: .75rem; }

/* talent (dormant zzz screens) */
.meter { height: 6px; background: var(--border); overflow: hidden; }
.meter > span { display: block; height: 100%; background: var(--foreground); }
.demo { border-top: 1px solid var(--border); padding: .9rem 0; }
.demo audio, .demo video { width: 100%; margin-top: .5rem; display: block; }
.demo video { max-height: 340px; background: #000; }
.demo img { max-width: 100%; max-height: 360px; object-fit: contain; margin-top: .5rem; }
.rubric { list-style: none; padding: 0; margin: 0 0 .75rem; }
.rubric li { margin: .35rem 0; }
.avatar { width: 64px; height: 64px; object-fit: cover; background: var(--paper); border: 1px solid var(--border); }

@media (max-width: 760px) {
  .grid-2, .grid-3, .split, .filters { grid-template-columns: minmax(0, 1fr); }
  .admin-shell { display: block; }
  .sidebar { display: none; width: 100%; }
  .sidebar.open { display: flex; }
  .btn.menu-toggle { display: inline-flex; }
  .container { padding: 1.25rem 1rem 3rem; }
  h1 { font-size: 1.9rem; }
}

/* ---- Admin: one top nav, moderation rows, team page,
   CMS sign-in popup) in the Lumen Agency look (owner, 2026-10-17: "keep lumen
   look"): black header bar with the white R1 logo, white pages, heavy Archivo
   heads with 2px rule underlines, mono uppercase meta, square black buttons,
   thin #e3e3e3 borders. Every /admin/* page and /admin/cms-auth uses body.dk. */
body.dk { background: var(--background); color: var(--foreground); min-height: 100vh; }
.dk-bar { background: var(--foreground); color: var(--background); display: flex; align-items: center;
          gap: .75rem 1.5rem; padding: .8rem 1.25rem; flex-wrap: wrap; }
.dk-word { display: inline-flex; align-items: center; gap: .6rem; color: var(--background); text-decoration: none; }
.dk-word:hover { text-decoration: none; }
.dk-word span { font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em;
                text-transform: uppercase; color: #9a9a9a; }
.dk-nav { display: flex; flex-wrap: wrap; gap: .1rem; flex: 1; }
.dk-nav a, .dk-acct a { color: var(--background); text-decoration: none; font-weight: 800; font-size: .92rem;
                        padding: .4rem .6rem; white-space: nowrap; }
.dk-nav a:hover:not(.active), .dk-acct a:hover { text-decoration: underline; }
.dk-nav a.active { background: var(--background); color: var(--foreground); }
.dk-acct { display: flex; gap: .1rem; margin-left: auto; }
.dk-acct a { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: .08em;
             text-transform: uppercase; color: #bdbdbd; }
.dk-wrap { max-width: 1200px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
.dk-wrap > h1, .dk-wrap > .card-title:first-of-type { border-bottom: 2px solid var(--foreground); padding-bottom: .6rem;
                                                     margin-bottom: 1rem; }
.dk-wrap > .card-title:first-of-type h1 { margin: 0; }
.dk-h2 { border-bottom: 2px solid var(--foreground); padding-bottom: .5rem; margin: 2rem 0 1rem; }
.dk-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: .9rem 0;
          border-bottom: 1px solid var(--border); }
.dk-row:first-child { padding-top: 0; } .dk-row:last-child { border-bottom: 0; padding-bottom: 0; }
.dk-row-main { min-width: 0; overflow-wrap: anywhere; }
.dk-row-main > strong { font-weight: 800; }
.dk-row-main > .meta, .dk-row-main > .pill { margin-left: .4rem; }
.dk-row small { color: var(--meta); display: block; font-size: .85rem; }
.dk-body { margin: .35rem 0; white-space: pre-wrap; }
.dk-actions { display: flex; gap: .5rem; flex-shrink: 0; }
.dk-actions form { margin: 0; }
.dk-callout { border-left: 4px solid var(--foreground); background: var(--paper); }
.dk-code { font-family: var(--font-mono); font-size: 1.05rem; font-weight: 600; user-select: all; }

/* CMS sign-in popup: same card as the public sign-in pages */
body.dk-center { display: flex; align-items: center; justify-content: center; padding: 1.5rem 1rem; background: var(--paper); }
.dk-gate { background: var(--background); border-top: 6px solid var(--foreground); padding: 1.75rem; width: 100%; max-width: 420px; }
.dk-gate .dk-word { display: block; margin-bottom: .75rem; }
.dk-gate .sub { margin-bottom: 1.25rem; color: var(--muted-foreground); }
.dk-gate label { margin: 1rem 0 .35rem; }
.dk-gate button { width: 100%; margin-top: 1.5rem; padding: .7rem; background: var(--foreground); color: var(--background);
                  border: 1px solid var(--foreground); border-radius: 0; font: 800 .95rem var(--font-body); cursor: pointer; }
.dk-gate button:hover { background: #333; border-color: #333; }
.dk-gate .error { border-left: 4px solid var(--destructive); background: var(--paper); padding: .7rem 1rem;
                  font-size: .9rem; font-weight: 500; margin-bottom: .5rem; }

@media (max-width: 760px) {
  .dk-bar { padding: .75rem 1rem; }
  .dk-nav { order: 3; flex-basis: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .dk-wrap { padding: 1.25rem 1rem 3rem; }
  .dk-row { flex-direction: column; }
}

/* Brand logo (R1, flat black/white): replaces the text wordmark */
.brand-logo { display: block; height: 40px; width: auto; }
.logo:has(.brand-logo), .dk-word:has(.brand-logo) { display: inline-flex; align-items: center; gap: .6rem; }
.sidebar .brand-logo, .dk-bar .brand-logo { height: 34px; }
.dk-gate .brand-logo { height: 44px; }
