/* mod-forgejo.css — mod-code (Forgejo) Design Core LANGUAGE layer (ADR-0002).
   Loaded on every page by custom/templates/custom/header.tmpl, but EVERY rule is scoped to the
   company themes ([data-theme^="company-"]) so choosing a built-in Forgejo theme restores stock
   Forgejo. COLOUR-INDEPENDENT: uses Forgejo's own --color-*/--fonts-* vars, so it adapts to
   dark/light + the live palette (mod-palette.js). Cosmetic only — never touches layout flow,
   forms, or behaviour. Companion to theme-company-{dark,light}.css (colours + boxy + palettes).
   Mirrors mod-team's front-theme language (huly-shape/structure/components/affordances). */

/* ── 1. Header (#navbar): the mod-code app-signal edge + hairline + mono nav labels ──────────
   The periwinkle bottom edge is the FIXED "you are in CODE" signal (color.mod.app.code, ADR-0001) —
   palette-INDEPENDENT by construction, exactly like mod-team's teal app-rail edge. */
[data-theme^="company-"] #navbar {
  border-bottom: 2px solid #7b82e0;
  box-shadow: none;
}
[data-theme^="company-"] #navbar .item {
  font-family: var(--fonts-monospace);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.78rem;
  border-radius: 0;
}
/* the logo + any username/brand item stay in their natural case */
[data-theme^="company-"] #navbar #navbar-logo,
[data-theme^="company-"] #navbar .dropdown .item { text-transform: none; letter-spacing: 0; font-size: inherit; }

/* ── 2. Mono instrument chrome — structural LABELS only (content stays sans/readable) ──────── */
[data-theme^="company-"] .ui.table thead th,
[data-theme^="company-"] .repository .tabs .item,
[data-theme^="company-"] .ui.tabular.menu .item,
[data-theme^="company-"] .ui.secondary.pointing.menu .item,
[data-theme^="company-"] .page-content .ui.top.attached.header,
[data-theme^="company-"] .ui.attached.header {
  font-family: var(--fonts-monospace) !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ── 3. Boxy — kill residual radii on the common Fomantic surfaces (var handles most) ──────── */
[data-theme^="company-"] .ui.button,
[data-theme^="company-"] .ui.input > input,
[data-theme^="company-"] .ui.segment,
[data-theme^="company-"] .ui.card,
[data-theme^="company-"] .ui.menu,
[data-theme^="company-"] .ui.attached,
[data-theme^="company-"] .ui.label,
[data-theme^="company-"] .ui.dropdown .menu,
[data-theme^="company-"] .CodeMirror,
[data-theme^="company-"] .ui.selection.dropdown { border-radius: 0 !important; }

/* ── 4. Flat + hairline (no glow, one border weight) ──────────────────────────────────────── */
[data-theme^="company-"] .ui.segment,
[data-theme^="company-"] .ui.card,
[data-theme^="company-"] .ui.attached.segment,
[data-theme^="company-"] .repository .ui.segment {
  box-shadow: none !important;
  border: 1px solid var(--color-border);
}

/* ── 5. Grid substrate — hairline engineering field on the page ground (palette-reactive,
   subtle; reads in gutters + empty states, covered where opaque panels sit — by design) ────── */
[data-theme^="company-"] body {
  background-color: var(--color-body);
  background-image:
    linear-gradient(var(--color-light-border) 1px, transparent 1px),
    linear-gradient(90deg, var(--color-light-border) 1px, transparent 1px);
  background-size: 56px 56px;
  background-attachment: fixed;
}

/* ── 6. Corner registration ticks — accent-marked corners on the substantial framed surfaces
   (the arcade signature). Scoped to the main content cards/segments, NOT every chip/popover. ── */
[data-theme^="company-"] .page-content .ui.card,
[data-theme^="company-"] .repository .ui.attached.segment { position: relative; }
[data-theme^="company-"] .page-content .ui.card::before,
[data-theme^="company-"] .repository .ui.attached.segment::before {
  content: ""; position: absolute; top: -1px; left: -1px; width: 7px; height: 7px;
  border-top: 2px solid var(--color-accent); border-left: 2px solid var(--color-accent);
  pointer-events: none;
}
[data-theme^="company-"] .page-content .ui.card::after,
[data-theme^="company-"] .repository .ui.attached.segment::after {
  content: ""; position: absolute; bottom: -1px; right: -1px; width: 7px; height: 7px;
  border-bottom: 2px solid var(--color-accent); border-right: 2px solid var(--color-accent);
  pointer-events: none;
}

/* ── 7. Visible focus — accent outline (≥3:1 non-text on both grounds) ────────────────────── */
[data-theme^="company-"] a:focus-visible,
[data-theme^="company-"] .ui.button:focus-visible,
[data-theme^="company-"] input:focus-visible,
[data-theme^="company-"] .ui.dropdown:focus-visible {
  outline: 2px solid var(--color-accent) !important;
  outline-offset: 2px;
}

/* ── 8. Palette switcher chrome (nodes injected by mod-palette.js into .navbar-right) ──────── */
[data-theme^="company-"] #mod-palette { display: inline-flex; align-items: center; gap: 4px; margin: 0 0.35rem; }
[data-theme^="company-"] #mod-palette button {
  width: 13px; height: 13px; padding: 0; border: 1px solid var(--color-border);
  border-radius: 0; cursor: pointer; outline-offset: 2px;
}
