/* src/styles.scss */
html {
  height: 100%;
  color-scheme: dark;
  --mat-sys-background: light-dark(#f9faf3, #121410);
  --mat-sys-error: light-dark(#ba1a1a, #ffb4ab);
  --mat-sys-error-container: light-dark(#ffdad6, #93000a);
  --mat-sys-inverse-on-surface: light-dark(#f1f1eb, #2f312d);
  --mat-sys-inverse-primary: light-dark(#02e600, #026e00);
  --mat-sys-inverse-surface: light-dark(#2f312d, #e2e3dc);
  --mat-sys-on-background: light-dark(#1a1c18, #e2e3dc);
  --mat-sys-on-error: light-dark(#ffffff, #690005);
  --mat-sys-on-error-container: light-dark(#93000a, #ffdad6);
  --mat-sys-on-primary: light-dark(#ffffff, #013a00);
  --mat-sys-on-primary-container: light-dark(#015300, #77ff61);
  --mat-sys-on-primary-fixed: light-dark(#002200, #002200);
  --mat-sys-on-primary-fixed-variant: light-dark(#015300, #015300);
  --mat-sys-on-secondary: light-dark(#ffffff, #263422);
  --mat-sys-on-secondary-container: light-dark(#3c4b37, #d7e8cd);
  --mat-sys-on-secondary-fixed: light-dark(#121f0e, #121f0e);
  --mat-sys-on-secondary-fixed-variant: light-dark(#3c4b37, #3c4b37);
  --mat-sys-on-surface: light-dark(#1a1c18, #e2e3dc);
  --mat-sys-on-surface-variant: light-dark(#43483f, #dfe4d7);
  --mat-sys-on-tertiary: light-dark(#ffffff, #013a00);
  --mat-sys-on-tertiary-container: light-dark(#015300, #77ff61);
  --mat-sys-on-tertiary-fixed: light-dark(#002200, #002200);
  --mat-sys-on-tertiary-fixed-variant: light-dark(#015300, #015300);
  --mat-sys-outline: light-dark(#73796e, #8d9387);
  --mat-sys-outline-variant: light-dark(#c3c8bc, #43483f);
  --mat-sys-primary: light-dark(#026e00, #02e600);
  --mat-sys-primary-container: light-dark(#77ff61, #015300);
  --mat-sys-primary-fixed: light-dark(#77ff61, #77ff61);
  --mat-sys-primary-fixed-dim: light-dark(#02e600, #02e600);
  --mat-sys-scrim: light-dark(#000000, #000000);
  --mat-sys-secondary: light-dark(#54634d, #bbcbb2);
  --mat-sys-secondary-container: light-dark(#d7e8cd, #3c4b37);
  --mat-sys-secondary-fixed: light-dark(#d7e8cd, #d7e8cd);
  --mat-sys-secondary-fixed-dim: light-dark(#bbcbb2, #bbcbb2);
  --mat-sys-shadow: light-dark(#000000, #000000);
  --mat-sys-surface: light-dark(#f9faf3, #121410);
  --mat-sys-surface-bright: light-dark(#f9faf3, #383a35);
  --mat-sys-surface-container: light-dark(#eeeee7, #1e201c);
  --mat-sys-surface-container-high: light-dark(#e8e9e1, #282b26);
  --mat-sys-surface-container-highest: light-dark(#e2e3dc, #333531);
  --mat-sys-surface-container-low: light-dark(#f3f4ed, #1a1c18);
  --mat-sys-surface-container-lowest: light-dark(#ffffff, #0c0f0b);
  --mat-sys-surface-dim: light-dark(#dadbd3, #121410);
  --mat-sys-surface-tint: light-dark(#026e00, #02e600);
  --mat-sys-surface-variant: light-dark(#dfe4d7, #43483f);
  --mat-sys-tertiary: light-dark(#026e00, #02e600);
  --mat-sys-tertiary-container: light-dark(#77ff61, #015300);
  --mat-sys-tertiary-fixed: light-dark(#77ff61, #77ff61);
  --mat-sys-tertiary-fixed-dim: light-dark(#02e600, #02e600);
  --mat-sys-neutral-variant20: #2c3229;
  --mat-sys-neutral10: #1a1c18;
  --mat-sys-level0:
    0px 0px 0px 0px rgba(0, 0, 0, 0.2),
    0px 0px 0px 0px rgba(0, 0, 0, 0.14),
    0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  --mat-sys-level1:
    0px 2px 1px -1px rgba(0, 0, 0, 0.2),
    0px 1px 1px 0px rgba(0, 0, 0, 0.14),
    0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  --mat-sys-level2:
    0px 3px 3px -2px rgba(0, 0, 0, 0.2),
    0px 3px 4px 0px rgba(0, 0, 0, 0.14),
    0px 1px 8px 0px rgba(0, 0, 0, 0.12);
  --mat-sys-level3:
    0px 3px 5px -1px rgba(0, 0, 0, 0.2),
    0px 6px 10px 0px rgba(0, 0, 0, 0.14),
    0px 1px 18px 0px rgba(0, 0, 0, 0.12);
  --mat-sys-level4:
    0px 5px 5px -3px rgba(0, 0, 0, 0.2),
    0px 8px 10px 1px rgba(0, 0, 0, 0.14),
    0px 3px 14px 2px rgba(0, 0, 0, 0.12);
  --mat-sys-level5:
    0px 7px 8px -4px rgba(0, 0, 0, 0.2),
    0px 12px 17px 2px rgba(0, 0, 0, 0.14),
    0px 5px 22px 4px rgba(0, 0, 0, 0.12);
  --mat-sys-body-large: 400 1rem / 1.5rem Manrope;
  --mat-sys-body-large-font: Manrope;
  --mat-sys-body-large-line-height: 1.5rem;
  --mat-sys-body-large-size: 1rem;
  --mat-sys-body-large-tracking: 0.031rem;
  --mat-sys-body-large-weight: 400;
  --mat-sys-body-medium: 400 0.875rem / 1.25rem Manrope;
  --mat-sys-body-medium-font: Manrope;
  --mat-sys-body-medium-line-height: 1.25rem;
  --mat-sys-body-medium-size: 0.875rem;
  --mat-sys-body-medium-tracking: 0.016rem;
  --mat-sys-body-medium-weight: 400;
  --mat-sys-body-small: 400 0.75rem / 1rem Manrope;
  --mat-sys-body-small-font: Manrope;
  --mat-sys-body-small-line-height: 1rem;
  --mat-sys-body-small-size: 0.75rem;
  --mat-sys-body-small-tracking: 0.025rem;
  --mat-sys-body-small-weight: 400;
  --mat-sys-display-large: 400 3.562rem / 4rem Manrope;
  --mat-sys-display-large-font: Manrope;
  --mat-sys-display-large-line-height: 4rem;
  --mat-sys-display-large-size: 3.562rem;
  --mat-sys-display-large-tracking: -0.016rem;
  --mat-sys-display-large-weight: 400;
  --mat-sys-display-medium: 400 2.812rem / 3.25rem Manrope;
  --mat-sys-display-medium-font: Manrope;
  --mat-sys-display-medium-line-height: 3.25rem;
  --mat-sys-display-medium-size: 2.812rem;
  --mat-sys-display-medium-tracking: 0;
  --mat-sys-display-medium-weight: 400;
  --mat-sys-display-small: 400 2.25rem / 2.75rem Manrope;
  --mat-sys-display-small-font: Manrope;
  --mat-sys-display-small-line-height: 2.75rem;
  --mat-sys-display-small-size: 2.25rem;
  --mat-sys-display-small-tracking: 0;
  --mat-sys-display-small-weight: 400;
  --mat-sys-headline-large: 400 2rem / 2.5rem Manrope;
  --mat-sys-headline-large-font: Manrope;
  --mat-sys-headline-large-line-height: 2.5rem;
  --mat-sys-headline-large-size: 2rem;
  --mat-sys-headline-large-tracking: 0;
  --mat-sys-headline-large-weight: 400;
  --mat-sys-headline-medium: 400 1.75rem / 2.25rem Manrope;
  --mat-sys-headline-medium-font: Manrope;
  --mat-sys-headline-medium-line-height: 2.25rem;
  --mat-sys-headline-medium-size: 1.75rem;
  --mat-sys-headline-medium-tracking: 0;
  --mat-sys-headline-medium-weight: 400;
  --mat-sys-headline-small: 400 1.5rem / 2rem Manrope;
  --mat-sys-headline-small-font: Manrope;
  --mat-sys-headline-small-line-height: 2rem;
  --mat-sys-headline-small-size: 1.5rem;
  --mat-sys-headline-small-tracking: 0;
  --mat-sys-headline-small-weight: 400;
  --mat-sys-label-large: 500 0.875rem / 1.25rem Manrope;
  --mat-sys-label-large-font: Manrope;
  --mat-sys-label-large-line-height: 1.25rem;
  --mat-sys-label-large-size: 0.875rem;
  --mat-sys-label-large-tracking: 0.006rem;
  --mat-sys-label-large-weight: 500;
  --mat-sys-label-large-weight-prominent: 700;
  --mat-sys-label-medium: 500 0.75rem / 1rem Manrope;
  --mat-sys-label-medium-font: Manrope;
  --mat-sys-label-medium-line-height: 1rem;
  --mat-sys-label-medium-size: 0.75rem;
  --mat-sys-label-medium-tracking: 0.031rem;
  --mat-sys-label-medium-weight: 500;
  --mat-sys-label-medium-weight-prominent: 700;
  --mat-sys-label-small: 500 0.688rem / 1rem Manrope;
  --mat-sys-label-small-font: Manrope;
  --mat-sys-label-small-line-height: 1rem;
  --mat-sys-label-small-size: 0.688rem;
  --mat-sys-label-small-tracking: 0.031rem;
  --mat-sys-label-small-weight: 500;
  --mat-sys-title-large: 400 1.375rem / 1.75rem Manrope;
  --mat-sys-title-large-font: Manrope;
  --mat-sys-title-large-line-height: 1.75rem;
  --mat-sys-title-large-size: 1.375rem;
  --mat-sys-title-large-tracking: 0;
  --mat-sys-title-large-weight: 400;
  --mat-sys-title-medium: 500 1rem / 1.5rem Manrope;
  --mat-sys-title-medium-font: Manrope;
  --mat-sys-title-medium-line-height: 1.5rem;
  --mat-sys-title-medium-size: 1rem;
  --mat-sys-title-medium-tracking: 0.009rem;
  --mat-sys-title-medium-weight: 500;
  --mat-sys-title-small: 500 0.875rem / 1.25rem Manrope;
  --mat-sys-title-small-font: Manrope;
  --mat-sys-title-small-line-height: 1.25rem;
  --mat-sys-title-small-size: 0.875rem;
  --mat-sys-title-small-tracking: 0.006rem;
  --mat-sys-title-small-weight: 500;
  --mat-sys-corner-extra-large: 28px;
  --mat-sys-corner-extra-large-top: 28px 28px 0 0;
  --mat-sys-corner-extra-small: 4px;
  --mat-sys-corner-extra-small-top: 4px 4px 0 0;
  --mat-sys-corner-full: 9999px;
  --mat-sys-corner-large: 16px;
  --mat-sys-corner-large-end: 0 16px 16px 0;
  --mat-sys-corner-large-start: 16px 0 0 16px;
  --mat-sys-corner-large-top: 16px 16px 0 0;
  --mat-sys-corner-medium: 12px;
  --mat-sys-corner-none: 0;
  --mat-sys-corner-small: 8px;
  --mat-sys-dragged-state-layer-opacity: 0.16;
  --mat-sys-focus-state-layer-opacity: 0.12;
  --mat-sys-hover-state-layer-opacity: 0.08;
  --mat-sys-pressed-state-layer-opacity: 0.12;
  --ctx-emerald: #10b981;
  --ctx-emerald-600: #059669;
  --ctx-emerald-400: #34d399;
  --ctx-emerald-300: #6ee7b7;
  --ctx-font-display:
    "Bricolage Grotesque",
    "Manrope",
    sans-serif;
  --ctx-font-body:
    "Manrope",
    "Helvetica Neue",
    sans-serif;
  --ctx-font-mono:
    "JetBrains Mono",
    ui-monospace,
    "Cascadia Code",
    Consolas,
    monospace;
  --ctx-bg: #070b0e;
  --ctx-bg-2: #0a1116;
  --ctx-surface: #0d151c;
  --ctx-surface-2: #111c26;
  --ctx-border: #1d2c3a;
  --ctx-text: #eef4f9;
  --ctx-text-muted: #a5b6c7;
  --ctx-cyan: #22d3ee;
  --mat-sys-primary: #10b981;
  --mat-sys-on-primary: #04211a;
  --mat-sys-primary-container: #10382d;
  --mat-sys-on-primary-container: #b6f2df;
  --mat-sys-tertiary: #34d399;
  --mat-sys-surface: #121b24;
  --mat-sys-surface-container: #17222e;
  --mat-sys-surface-container-high: #1c2938;
  --mat-sys-surface-container-highest: #21303f;
  --mat-sys-background: #0a0f14;
  --mat-sys-on-surface: #e6edf3;
  --mat-sys-on-surface-variant: #9fb0c0;
  --mat-sys-outline: #33475a;
  --mat-sys-outline-variant: #223140;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  height: 100%;
}
body {
  background-color: var(--ctx-bg);
  background-image:
    radial-gradient(
      circle,
      rgba(147, 165, 182, 0.055) 1px,
      transparent 1.4px),
    radial-gradient(
      1100px 520px at 85% -10%,
      rgba(16, 185, 129, 0.07),
      transparent 60%),
    radial-gradient(
      900px 520px at -12% 32%,
      rgba(52, 211, 153, 0.04),
      transparent 60%);
  background-size:
    26px 26px,
    auto,
    auto;
  color: var(--ctx-text);
  font: var(--mat-sys-body-medium);
  font-family: var(--ctx-font-body);
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4 {
  font-family: var(--ctx-font-display);
  line-height: 1.14;
}
p {
  line-height: 1.62;
}
::selection {
  background: rgba(16, 185, 129, 0.32);
  color: #eafff6;
}
:focus-visible {
  outline: 2px solid var(--ctx-emerald-400);
  outline-offset: 2px;
}
a {
  color: var(--ctx-emerald-400);
  text-decoration: none;
}
a:hover {
  color: var(--ctx-emerald-300);
}
.ctx-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  width: 100%;
}
.ctx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  padding: 13px 24px;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  border: 1px solid transparent;
  transition:
    transform 0.16s ease,
    box-shadow 0.22s ease,
    background 0.22s ease,
    border-color 0.22s ease;
}
.ctx-btn:hover {
  transform: translateY(-1px);
}
.ctx-btn:active {
  transform: translateY(1px);
}
.ctx-btn-primary {
  background:
    linear-gradient(
      135deg,
      var(--ctx-emerald-400) 0%,
      var(--ctx-emerald-600) 100%);
  color: #03241b;
  box-shadow: 0 6px 22px rgba(16, 185, 129, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.ctx-btn-primary:hover {
  color: #03241b;
  box-shadow: 0 12px 34px rgba(16, 185, 129, 0.44), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.ctx-btn-ghost {
  background: rgba(13, 21, 28, 0.5);
  border-color: var(--ctx-border);
  color: var(--ctx-text);
}
.ctx-btn-ghost:hover {
  color: var(--ctx-text);
  border-color: var(--ctx-emerald);
  box-shadow: 0 0 0 1px rgba(16, 185, 129, 0.25);
}
.ctx-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ctx-emerald-400);
  font-family: var(--ctx-font-mono);
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 12px;
}
.ctx-eyebrow::before {
  content: "//";
  color: var(--ctx-text-muted);
  font-weight: 400;
}
.text-emerald {
  color: var(--ctx-emerald-400);
}
.text-gradient {
  background:
    linear-gradient(
      92deg,
      var(--ctx-emerald-400) 10%,
      var(--ctx-cyan) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.mono {
  font-family: var(--ctx-font-mono);
}
.ctx-reveal-hidden {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.ctx-reveal-shown {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .ctx-reveal-hidden {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
@keyframes ctx-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ctx-reveal {
  animation: ctx-rise 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.ctx-reveal-1 {
  animation-delay: 0.05s;
}
.ctx-reveal-2 {
  animation-delay: 0.14s;
}
.ctx-reveal-3 {
  animation-delay: 0.23s;
}
.ctx-reveal-4 {
  animation-delay: 0.32s;
}
.ctx-reveal-5 {
  animation-delay: 0.41s;
}
@media (prefers-reduced-motion: reduce) {
  .ctx-reveal {
    animation: none;
  }
}
.ctx-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 16px;
  color: var(--ctx-text-muted);
  text-align: center;
}
.ctx-card {
  background: var(--ctx-surface);
  border: 1px solid var(--ctx-border);
  border-radius: 16px;
}
.mat-mdc-snack-bar-container.ctx-snack-error {
  --mdc-snackbar-container-color: #3a1414;
  --mdc-snackbar-supporting-text-color: #ffd7d7;
}
.mat-mdc-snack-bar-container.ctx-snack-ok {
  --mdc-snackbar-container-color: #10382d;
  --mdc-snackbar-supporting-text-color: #b6f2df;
}
.spacer {
  flex: 1 1 auto;
}
.admin-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.admin-head h1 {
  margin: 0;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.admin-head .sub {
  margin: 6px 0 0;
  color: var(--ctx-text-muted);
}
.admin-panel {
  background: var(--ctx-surface);
  border: 1px solid var(--ctx-border);
  border-radius: 16px;
  overflow: hidden;
}
.admin-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--ctx-border);
  flex-wrap: wrap;
}
.table-scroll {
  overflow-x: auto;
  width: 100%;
}
table.mat-mdc-table {
  background: transparent;
  width: 100%;
}
.mat-mdc-header-cell {
  color: var(--ctx-text-muted);
  font-weight: 600;
}
.mat-mdc-cell,
.mat-mdc-header-cell {
  border-bottom-color: var(--ctx-border);
}
.status-tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid transparent;
}
.status-tag.ok {
  color: var(--ctx-emerald-300);
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.3);
}
.status-tag.warn {
  color: #fbbf24;
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.3);
}
.status-tag.bad {
  color: #fca5a5;
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
}
.status-tag.muted {
  color: var(--ctx-text-muted);
  background: var(--ctx-surface-2);
  border-color: var(--ctx-border);
}
.mono {
  font-family: var(--ctx-font-mono);
  font-size: 12.5px;
  color: var(--ctx-text-muted);
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
