/* GENERATED by build/gen_theme.py from web/shared/systems/*.css - edit those, not this file. */

/* ===== _foundation.css ===== */
/* Foundation - the only file in systems/ allowed unscoped rules.
 * Purposeful motion only (entrance reveal + a quiet live-dot), accessible focus,
 * and reduced-motion. Per-system character lives in the palette deltas. */

:root {
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --dur-2: 240ms;
  --dur-3: 380ms;
  --reveal-delay: 0ms;
}

/* entrance reveal (driven by motion.js) */
.will-reveal { opacity: 0; transform: translateY(8px); }
.will-reveal.is-revealed {
  opacity: 1; transform: none;
  transition: opacity var(--dur-3) var(--ease-out) var(--reveal-delay),
              transform var(--dur-3) var(--ease-out) var(--reveal-delay);
}
.row-reveal { animation: rowIn var(--dur-2) var(--ease-out) both; animation-delay: var(--reveal-delay); }
@keyframes rowIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* a single quiet live indicator */
@keyframes pulseSoft { from { opacity: 1; } to { opacity: .5; } }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; animation: pulseSoft 2.4s ease-in-out infinite alternate; }

/* sparkline emitted by motion.js */
.spark { display: block; width: 88px; height: 24px; overflow: visible; }
.spark__line { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; opacity: .85; }

/* one accessible focus treatment everywhere */
:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .will-reveal { opacity: 1; transform: none; }
}

/* ===== pathfinder.css ===== */
/* AA Pathfinder - the platform shell (login / register / picker / keys / launcher).
 * The one dark surface in the estate: a refined deep-slate, not a neon console.
 * Palette + accent only; no animated backgrounds, glows, or ornament. */
[data-system="pathfinder"] {
  --color-bg: #12161c;
  --color-surface: #1a212b;
  --color-surface-2: #212a35;
  --color-text: #e7ecf2;
  --color-muted: #9aa7b5;
  --color-border: #2a3441;

  --color-primary: #c25610;            /* AnnaSeva saffron - same depth as light; white ink reads clean */
  --color-primary-ink: #ffffff;
  --color-primary-weak: rgba(239,125,45,.16);

  --color-ok: #4fd18a;      --color-ok-weak: rgba(79,209,138,.14);
  --color-warn: #f0be5a;    --color-warn-weak: rgba(240,190,90,.14);
  --color-danger: #ff7a72;  --color-danger-weak: rgba(255,122,114,.14);
  --color-info: #7ea9f0;    --color-info-weak: rgba(126,169,240,.14);
  --color-neutral-weak: rgba(255,255,255,.07);

  --nav-bg: #12161c; --nav-fg: #c4cfdb; --nav-fg-dim: #8494a3;
  --nav-heading: #7f8ba0; --nav-active-fg: #ffffff;
  --toast-bg: #0e1319; --toast-fg: #f3f6fa; --toast-ref: #ef9a5a;

  --shadow-1: 0 1px 2px rgba(0,0,0,.4);
  --shadow-2: 0 10px 30px rgba(0,0,0,.5);
}
[data-system="pathfinder"] a { color: var(--color-primary); }
[data-system="pathfinder"] .field input,
[data-system="pathfinder"] .field select,
[data-system="pathfinder"] .field textarea { background: #10151b; }

/* ===== apops.css ===== */
/* AnnaSeva Ops - central kitchen ERP. Identity: warm, data-dense worksheet.
 * Amber accent; palette + one signature (mono codes in the first table column). */
[data-system="apops"] {
  --color-bg: #f4f2ee;
  --color-surface: #ffffff;
  --color-surface-2: #efeae2;
  --color-text: #1b1a16;
  --color-muted: #6a6357;
  --color-border: #e4ddd0;

  --color-primary: #b45309;
  --color-primary-ink: #ffffff;
  --color-primary-weak: #f6e7d1;
}
/* codes/ids read as a column */
[data-system="apops"] table.dt tbody td:first-child { font-family: var(--font-mono); font-weight: 600; }

/* ===== snet.css ===== */
/* SupplierNet - B2B supplier portal. Identity: cool, clean paper. Blue accent. */
[data-system="snet"] {
  --color-bg: #f4f6fa;
  --color-surface: #ffffff;
  --color-surface-2: #eef2f8;
  --color-text: #17202e;
  --color-muted: #566274;
  --color-border: #e0e6f0;

  --color-primary: #2f5fb0;
  --color-primary-ink: #ffffff;
  --color-primary-weak: #e3ebf7;
}

/* ===== apmail.css ===== */
/* AnnaSeva Mail - correspondence client. Identity: warm paper, comfortable reading. Teal accent. */
[data-system="apmail"] {
  --color-bg: #f5f6f5;
  --color-surface: #ffffff;
  --color-surface-2: #eef1f0;
  --color-text: #1a211f;
  --color-muted: #5a6663;
  --color-border: #e2e7e5;

  --color-primary: #0e7490;
  --color-primary-ink: #ffffff;
  --color-primary-weak: #d9edf1;
}
/* letters read as prose */
[data-system="apmail"] .doc { max-width: 74ch; line-height: 1.65; }

/* ===== district.css ===== */
/* District Relief Office - official government portal. Identity: formal, neutral. Green accent. */
[data-system="district"] {
  --color-bg: #f4f6f4;
  --color-surface: #ffffff;
  --color-surface-2: #edf1ed;
  --color-text: #17211b;
  --color-muted: #566259;
  --color-border: #dfe6df;

  --color-primary: #15803d;
  --color-primary-ink: #ffffff;
  --color-primary-weak: #ddf1e4;

  /* a touch more formal: crisper corners */
  --radius: 5px; --radius-sm: 3px;
}

/* ===== opsq.css ===== */
/* OPSQ - Ops Approval Queue. Internal escalation tool. Identity: focused, cool. Violet accent. */
[data-system="opsq"] {
  --color-bg: #f5f4f8;
  --color-surface: #ffffff;
  --color-surface-2: #efedf6;
  --color-text: #1c1a26;
  --color-muted: #5f5a70;
  --color-border: #e6e3f0;

  --color-primary: #6b46c1;
  --color-primary-ink: #ffffff;
  --color-primary-weak: #ece6f8;
}
