/* requires.management — design tokens
   Decrypt Ecosystem design system — v0.1
   Built on the Null_Point() design system substrate.

   Substrate tokens (--sprawl-*) are shared with nullpoint.nexus.
   Primary expressive: amber (--color-accent) — the logged record, phosphor terminal.
   Not red. Red is --color-danger, alarm only.
   Not cyan. Cyan is --color-info, functional voice, never decoration.

   --color-accent changes per service via [data-service].
   Everything else is shared warm-dark substrate.
*/

@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Stencil:opsz,wght@10..72,800&family=Share+Tech+Mono&family=Rajdhani:wght@300;400;600&display=swap');

:root {
  /* ── Substrate — warm dark, shared with nullpoint.nexus ── */
  /* Never blue-tinted. Never server-room. */
  --color-background:     #110d0c;   /* --sprawl-100 */
  --color-foreground:     #181311;   /* --sprawl-200 — raised surface, inputs */
  --color-surface-raised: #221a17;   /* --sprawl-300 — cards, panels */
  --color-surface-hover:  #2c221e;   /* --sprawl-400 — hover state */

  /* ── Text — warm off-whites ── */
  --color-text-primary:   #f2ece3;   /* --ink-100 */
  --color-text-secondary: #c9bfb3;   /* --ink-200 */
  --color-text-disabled:  #5a4f46;   /* --ink-400 */
  --color-text-on-accent: #110d0c;   /* dark text on amber fills */

  /* ── Platform accent — default amber (log) ── */
  /* The persisted record. The phosphor terminal. The thing written down. */
  /* Each service overrides these three via [data-service] */
  --color-accent:        #d4882a;   /* --log */
  --color-accent-hover:  #e8a040;   /* --log-bright */
  --color-accent-active: #a06820;   /* --log-dim */

  /* ── Semantic ── */
  /* Alarm red — demoted from Null_Point primary. Alarm state only. */
  --color-danger:  #e8202a;   /* --alarm */
  /* Net cyan — inherited infrastructure, functional labels */
  --color-info:    #4dbdb4;   /* --net */
  /* Success green — recovery, available, complete */
  --color-success: #6ba84f;   /* --signal-success */
  /* Warning — caution, distinct from amber accent */
  --color-warning: #d49a2c;   /* --signal-warning */

  /* ── Structure ── */
  --color-border:          #3a2d27;   /* --sprawl-500 */
  --color-divider:         #221a17;   /* --sprawl-300 */
  --color-grid-line:       #2c221e;   /* --sprawl-400 */
  --color-scrollbar-thumb: #4a3a32;   /* --sprawl-600 */
  --color-scrollbar-track: #110d0c;   /* --sprawl-100 */

  /* ── Typography ── */
  /* Display: Big Shoulders Stencil — wordmarks, project names, app names only */
  /* NOT Orbitron. Orbitron is the Cascade/corp font. */
  --font-family-display: 'Big Shoulders Stencil', sans-serif;
  /* Body: Rajdhani — UI labels, body copy */
  --font-family-body:    'Rajdhani', sans-serif;
  /* Mono: Share Tech Mono — the terminal voice, data readouts, status lines */
  /* Primary expressive font in Decrypt context */
  --font-family-mono:    'Share Tech Mono', monospace;

  --font-h1:          2.000rem;
  --font-h2:          1.600rem;
  --font-h3:          1.350rem;
  --font-h4:          1.150rem;
  --font-large:       1.300rem;
  --font-base:        1.100rem;
  --font-small:       0.950rem;
  --font-tiny:        0.800rem;
  --font-micro:       0.687rem;
  --font-mono-offset: -0.05rem;

  --font-weight-body:    400;
  --font-weight-heading: 700;

  /* ── Spacing ── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;

  /* ── Radii — near zero, stamped not formed ── */
  --radius-sm: 1px;
  --radius-md: 2px;

  /* ── Transitions — conservative, functional not expressive ── */
  --transition-fast:   0.12s cubic-bezier(.4,0,.2,1);
  --transition-normal: 0.22s cubic-bezier(.4,0,.2,1);
  --transition-theme:  0.3s ease;

  /* ── Layout ── */
  --page-gutter:   var(--space-8);
  --content-max:   1100px;
  --header-height: 52px;   /* Decrypt nav is 52px — tighter than nullpoint 64px */
}

@media (max-width: 768px) { :root { --page-gutter: var(--space-5); } }
@media (max-width: 480px) { :root { --page-gutter: var(--space-4); } }

/* ── Service accent overrides ──────────────────────────────────────────────── */
/* Set data-service on <html> in each subdomain's index.html */

/* warframe.requires.management — amber log, same as platform default */
[data-service="warframe"] {
  --color-accent:        #d4882a;
  --color-accent-hover:  #e8a040;
  --color-accent-active: #a06820;
}

/* nodesync — signal-success green (online/verified node state) */
[data-service="nodesync"] {
  --color-accent:        #6ba84f;
  --color-accent-hover:  #82c462;
  --color-accent-active: #4d8835;
}

/* persona — net cyan (finance as infrastructure) */
[data-service="persona"] {
  --color-accent:        #4dbdb4;
  --color-accent-hover:  #65cec5;
  --color-accent-active: #2f8a82;
}
