@charset "UTF-8";

/* src/styles.scss */
:root {
  --op-bg: #fcfcfb;
  --op-bg-deep: #f6f5f2;
  --op-surface: #f6f5f2;
  --op-ink: #0a0b0d;
  --op-muted: #7c7a74;
  --op-faint: #9aa1ab;
  --op-line: #e8e6e1;
  --op-act: #b0740c;
  --op-act-on-dark: #f0a31e;
  --op-act-soft: #ffe7bc;
  --op-act-deep: #d9880b;
  --op-act-ink: #7f5206;
  --op-link: #2545e6;
  --op-link-on-dark: #7fa0ff;
  --op-ok: #0e9f6e;
  --op-ok-soft: #e8f5ee;
  --op-warn: #9a6700;
  --op-warn-soft: #fff3df;
  --op-dark: #0a0b0d;
  --op-dark-card: #1c1e24;
  --op-ember: #ff6b35;
  --op-ember-soft: #ffdfd4;
  --op-teal-info: #0e9aa7;
  --op-teal-soft: #d7f0f3;
  --op-plum: #6d2e7a;
  --op-plum-soft: #eeddf2;
  --op-radius: 16px;
  --op-radius-lg: 20px;
  --op-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --op-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset, 0 10px 28px rgba(10, 11, 13, 0.04);
  --op-shadow-act: 0 10px 24px rgba(176, 116, 12, 0.28);
  --op-font:
    "IBM Plex Sans",
    "Segoe UI",
    system-ui,
    sans-serif;
  --op-font-display:
    "Archivo",
    "IBM Plex Sans",
    sans-serif;
  --op-mono:
    "JetBrains Mono",
    "IBM Plex Mono",
    ui-monospace,
    monospace;
}
.op-page {
  color: var(--op-ink);
  animation: op-rise 380ms var(--op-ease) both;
}
@keyframes op-rise {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.op-page-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-end;
  margin-bottom: 1.15rem;
}
.op-eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--op-faint);
}
.op-page-head h1 {
  margin: 0 0 0.3rem;
  font-family: var(--op-font-display);
  font-size: clamp(1.55rem, 2.5vw, 1.95rem);
  font-weight: 700;
  letter-spacing: -0.04em;
}
.op-page-head > div > p,
.op-lede {
  margin: 0;
  color: var(--op-muted);
  font-size: 0.92rem;
  line-height: 1.45;
  max-width: 46ch;
}
.op-actions {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
}
.op-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: 0 1.15rem;
  border-radius: 10px;
  border: 1px solid var(--op-line);
  background: #fff;
  color: var(--op-ink);
  box-shadow: none;
  font-size: 0.86rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition:
    background 140ms var(--op-ease),
    border-color 140ms var(--op-ease),
    color 140ms var(--op-ease);
}
.op-btn:hover:not(:disabled) {
  background: var(--op-bg-deep);
  border-color: color-mix(in srgb, var(--op-ink) 14%, var(--op-line));
}
.op-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.op-btn:focus-visible {
  outline: 2px solid var(--op-link);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--op-link) 18%, transparent);
}
.op-btn--act {
  background: var(--op-act-on-dark);
  border-color: var(--op-act-on-dark);
  color: var(--op-ink);
  font-weight: 750;
  box-shadow: none;
}
.op-btn--act:hover:not(:disabled) {
  background: var(--op-act-deep);
  border-color: var(--op-act-deep);
  color: var(--op-ink);
}
.op-btn--ink {
  background: var(--op-ink);
  border-color: var(--op-ink);
  color: #f2f2f0;
}
.op-btn--ink:hover:not(:disabled) {
  background: #1c1e24;
  border-color: #1c1e24;
  color: #f2f2f0;
}
.op-btn--outline,
.op-btn--soft {
  background: #fff;
  border-color: color-mix(in srgb, var(--op-act) 45%, var(--op-line));
  color: var(--op-act-ink);
  box-shadow: none;
  font-weight: 650;
}
.op-btn--outline:hover:not(:disabled),
.op-btn--soft:hover:not(:disabled) {
  background: var(--op-bg);
  border-color: var(--op-act);
  color: var(--op-act-ink);
}
.op-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--op-muted);
  box-shadow: none;
}
.op-btn--ghost:hover:not(:disabled) {
  background: transparent;
  border-color: var(--op-line);
  color: var(--op-ink);
}
.op-panel {
  background: var(--op-surface);
  border: 1px solid var(--op-line);
  border-radius: var(--op-radius);
  padding: 1.05rem 1.15rem;
  box-shadow: var(--op-shadow);
}
.op-panel--hero {
  border-radius: var(--op-radius-lg);
  background: var(--op-surface);
  box-shadow: var(--op-shadow);
}
.op-panel--dark {
  background:
    radial-gradient(
      420px 220px at 100% 100%,
      color-mix(in srgb, var(--op-act-on-dark) 32%, transparent),
      transparent 55%),
    var(--op-dark);
  border-color: #1c1e24;
  color: #f2f2f0;
}
.op-panel--dark .op-kicker {
  color: var(--op-act-on-dark);
}
.op-panel--composer {
  border-style: dashed;
  border-color: color-mix(in srgb, var(--op-act) 45%, var(--op-line));
  background:
    linear-gradient(
      135deg,
      rgba(176, 116, 12, 0.08),
      transparent 55%),
    var(--op-act-soft);
}
.op-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--op-act);
}
.op-chip {
  min-height: 36px;
  padding: 0 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--op-line);
  background: #fff;
  cursor: pointer;
  font-weight: 650;
  font-size: 0.84rem;
  color: var(--op-muted);
}
.op-chip.is-on {
  border-color: color-mix(in srgb, var(--op-act) 45%, transparent);
  color: var(--op-act-deep);
  box-shadow: 0 0 0 3px var(--op-act-soft);
}
.op-chip--act {
  background: var(--op-act-soft);
  color: var(--op-act-deep);
  border-color: color-mix(in srgb, var(--op-act) 30%, transparent);
}
.op-chip--review {
  background: var(--op-warn-soft);
  color: var(--op-warn);
  border-color: color-mix(in srgb, var(--op-warn) 22%, transparent);
}
.op-chip--done {
  background: var(--op-ok-soft);
  color: var(--op-ok);
  border-color: color-mix(in srgb, var(--op-ok) 22%, transparent);
}
.op-flash {
  margin: 0 0 0.85rem;
  padding: 0.6rem 0.85rem;
  border-radius: 12px;
  font-size: 0.88rem;
  font-weight: 600;
}
.op-flash--err {
  color: #9b1c1c;
  background: #fff1f1;
  border: 1px solid #f3c1c1;
}
.op-flash--ok {
  color: var(--op-ok);
  background: var(--op-ok-soft);
  border: 1px solid color-mix(in srgb, var(--op-ok) 22%, transparent);
}
.op-note {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: var(--op-bg-deep);
  border: 1px solid var(--op-line);
  color: var(--op-muted);
  font-size: 0.88rem;
  line-height: 1.4;
}
.op-empty {
  margin: 0;
  padding: 1.5rem 0.5rem;
  text-align: center;
  color: var(--op-muted);
  font-size: 0.92rem;
}
.op-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.op-field > span {
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--op-faint);
}
.op-field input,
.op-field select,
.op-field textarea {
  min-height: 2.5rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--op-line);
  border-radius: 12px;
  background: #fff;
  color: var(--op-ink);
  font: inherit;
}
.op-field input:focus,
.op-field select:focus,
.op-field textarea:focus {
  outline: none;
  border-color: var(--op-link);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--op-link) 18%, transparent);
}
.op-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.op-row-card {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 0.95rem 1.05rem;
  background: var(--op-surface);
  border: 1px solid var(--op-line);
  border-radius: var(--op-radius);
  box-shadow: var(--op-shadow);
  transition: border-color 160ms var(--op-ease), box-shadow 160ms var(--op-ease);
}
.op-row-card:hover {
  border-color: color-mix(in srgb, var(--op-act) 30%, var(--op-line));
  box-shadow: 0 8px 20px rgba(22, 20, 16, 0.05);
}
.op-row-card.is-off {
  opacity: 0.72;
  background: color-mix(in srgb, var(--op-bg) 55%, #fff);
}
.rs-wordmark {
  display: inline-flex;
  align-items: baseline;
  font-family: var(--op-font-display);
  font-weight: 500;
  letter-spacing: -0.022em;
  color: var(--op-ink);
  white-space: nowrap;
}
.rs-wordmark > i {
  width: 0.735em;
  height: 0.735em;
  border-radius: 50%;
  border: 0.108em solid var(--op-act);
  box-sizing: border-box;
  margin: 0 0.045em -0.012em;
  flex: none;
  position: relative;
}
.rs-wordmark > i svg {
  display: none;
}
.rs-wordmark[data-size=micro] > i {
  border-width: 0.15em;
}
.rs-wordmark--on-dark {
  color: #f2f2f0;
}
.rs-wordmark--on-dark > i {
  border-color: var(--op-act-on-dark);
}
.rs-wordmark--draw > i {
  border-color: transparent;
  position: relative;
}
.rs-wordmark--draw > i svg {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.rs-wordmark--draw > i circle {
  fill: none;
  stroke: var(--op-act);
  stroke-width: 14.7;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  transform-origin: 50% 50%;
  transform: rotate(-90deg);
  animation: rs-ring-draw 640ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}
.rs-wordmark--on-dark.rs-wordmark--draw > i circle {
  stroke: var(--op-act-on-dark);
}
@keyframes rs-ring-draw {
  to {
    stroke-dashoffset: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rs-wordmark--draw > i {
    border-color: var(--op-act);
  }
  .rs-wordmark--on-dark.rs-wordmark--draw > i {
    border-color: var(--op-act-on-dark);
  }
  .rs-wordmark--draw > i svg {
    display: none;
  }
}
.rs-brand-icon {
  display: block;
  width: 2rem;
  height: 2rem;
  flex: none;
  border-radius: 0.44rem;
}
.rs-vibe,
.op-vibe,
.hq-vibe {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.15rem 1.2rem;
  border-radius: 16px;
  min-height: 7.5rem;
  border: 1px solid transparent;
}
.rs-vibe__kicker,
.op-vibe__kicker,
.hq-vibe__kicker {
  margin: 0;
  font-family: var(--op-mono, var(--hq-mono, var(--rs-font-mono)));
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.rs-vibe__title,
.op-vibe__title,
.hq-vibe__title {
  margin: 0;
  font-family: var(--op-font-display, var(--hq-font-display, var(--rs-font-display)));
  font-weight: 700;
  letter-spacing: -0.03em;
  font-size: 1.35rem;
  line-height: 1.15;
}
.rs-vibe__lede,
.op-vibe__lede,
.hq-vibe__lede {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.4;
  opacity: 0.82;
}
.rs-vibe--ink,
.op-vibe--ink,
.hq-vibe--ink {
  background: #0a0b0d;
  color: #f2f2f0;
}
.rs-vibe--ink .rs-vibe__kicker,
.op-vibe--ink .op-vibe__kicker,
.hq-vibe--ink .hq-vibe__kicker {
  color: #f0a31e;
}
.rs-vibe--char,
.op-vibe--char,
.hq-vibe--char {
  background: #1c1e24;
  color: #f2f2f0;
}
.rs-vibe--char .rs-vibe__kicker,
.op-vibe--char .op-vibe__kicker,
.hq-vibe--char .hq-vibe__kicker {
  color: #f0a31e;
}
.rs-vibe--amber,
.op-vibe--amber,
.hq-vibe--amber {
  background: #0a0b0d;
  color: #f2f2f0;
}
.rs-vibe--amber .rs-vibe__kicker,
.op-vibe--amber .op-vibe__kicker,
.hq-vibe--amber .hq-vibe__kicker {
  color: #f0a31e;
}
.rs-vibe--ember,
.op-vibe--ember,
.hq-vibe--ember {
  background: #1c1e24;
  color: #f2f2f0;
}
.rs-vibe--ember .rs-vibe__kicker,
.op-vibe--ember .op-vibe__kicker,
.hq-vibe--ember .hq-vibe__kicker {
  color: #f0a31e;
}
.rs-vibe--teal,
.op-vibe--teal,
.hq-vibe--teal {
  background: #0e9aa7;
  color: #f2f2f0;
}
.rs-vibe--teal .rs-vibe__kicker,
.op-vibe--teal .op-vibe__kicker,
.hq-vibe--teal .hq-vibe__kicker {
  color: #d7f0f3;
}
.rs-vibe--plum,
.op-vibe--plum,
.hq-vibe--plum {
  background: #6d2e7a;
  color: #f2f2f0;
}
.rs-vibe--plum .rs-vibe__kicker,
.op-vibe--plum .op-vibe__kicker,
.hq-vibe--plum .hq-vibe__kicker {
  color: #eeddf2;
}
.rs-vibe--wash-amber,
.op-vibe--wash-amber,
.hq-vibe--wash-amber {
  background: #0a0b0d;
  color: #f2f2f0;
}
.rs-vibe--wash-ember,
.op-vibe--wash-ember,
.hq-vibe--wash-ember {
  background: #1c1e24;
  color: #f2f2f0;
}
.rs-vibe--wash-teal,
.op-vibe--wash-teal,
.hq-vibe--wash-teal {
  background: #0e9aa7;
  color: #f2f2f0;
}
.rs-vibe--wash-plum,
.op-vibe--wash-plum,
.hq-vibe--wash-plum {
  background: #6d2e7a;
  color: #f2f2f0;
}
.rs-vibe--wash-amber .rs-vibe__kicker,
.op-vibe--wash-amber .op-vibe__kicker,
.hq-vibe--wash-amber .hq-vibe__kicker,
.rs-vibe--wash-ember .rs-vibe__kicker,
.op-vibe--wash-ember .op-vibe__kicker,
.hq-vibe--wash-ember .hq-vibe__kicker {
  color: #f0a31e;
}
.rs-vibe--wash-teal .rs-vibe__kicker,
.op-vibe--wash-teal .op-vibe__kicker,
.hq-vibe--wash-teal .hq-vibe__kicker {
  color: #d7f0f3;
}
.rs-vibe--wash-plum .rs-vibe__kicker,
.op-vibe--wash-plum .op-vibe__kicker,
.hq-vibe--wash-plum .hq-vibe__kicker {
  color: #eeddf2;
}
.app-btn,
.rs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.65rem;
  padding: 0 1.15rem;
  border-radius: 10px;
  border: 1px solid var(--app-line);
  background: #fff;
  color: var(--app-ink);
  box-shadow: none;
  font-size: 0.86rem;
  font-weight: 650;
  letter-spacing: -0.01em;
  cursor: pointer;
  text-decoration: none;
  transform: none;
  transition:
    background 0.14s var(--app-ease),
    border-color 0.14s var(--app-ease),
    color 0.14s var(--app-ease);
}
.app-btn:hover:not(:disabled),
.rs-btn:hover:not(:disabled) {
  background: var(--op-bg-deep, #f6f5f2);
  border-color: color-mix(in srgb, var(--app-ink) 14%, var(--app-line));
  text-decoration: none;
  transform: none;
  box-shadow: none;
}
.app-btn:active:not(:disabled),
.rs-btn:active:not(:disabled) {
  background: var(--op-bg-deep, #f6f5f2);
  transform: none;
}
.app-btn:focus-visible,
.rs-btn:focus-visible {
  outline: 2px solid var(--app-link);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--app-link) 18%, transparent);
}
.app-btn:disabled,
.rs-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.app-btn--primary,
.app-btn--teal,
.rs-btn--accent {
  background: var(--app-accent-on-dark);
  border-color: var(--app-accent-on-dark);
  color: var(--app-ink);
  font-weight: 750;
  box-shadow: none;
}
.app-btn--primary:hover:not(:disabled),
.app-btn--teal:hover:not(:disabled),
.rs-btn--accent:hover:not(:disabled) {
  background: var(--app-teal-deep);
  border-color: var(--app-teal-deep);
  color: var(--app-ink);
}
.app-btn--ink,
.rs-btn--ink {
  background: var(--app-ink);
  border-color: var(--app-ink);
  color: #f2f2f0;
  font-weight: 750;
}
.app-btn--ink:hover:not(:disabled),
.rs-btn--ink:hover:not(:disabled) {
  background: #1c1e24;
  border-color: #1c1e24;
  color: #f2f2f0;
}
.app-btn--outline,
.rs-btn--outline {
  background: #fff;
  border-color: color-mix(in srgb, var(--app-teal) 45%, var(--app-line));
  color: var(--op-act-ink, #7f5206);
  font-weight: 650;
}
.app-btn--ghost,
.rs-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--app-muted);
  box-shadow: none;
}
.app-btn--ghost:hover:not(:disabled),
.rs-btn--ghost:hover:not(:disabled) {
  background: transparent;
  border-color: var(--app-line);
  color: var(--app-ink);
  box-shadow: none;
}
.app-btn--danger,
.rs-btn--danger {
  color: var(--app-coral);
  background: #fff;
  border-color: color-mix(in srgb, var(--app-coral) 28%, var(--app-line));
}
.app-btn--danger:hover:not(:disabled),
.rs-btn--danger:hover:not(:disabled) {
  background: var(--app-coral-soft);
  border-color: color-mix(in srgb, var(--app-coral) 45%, var(--app-line));
}
.app-btn--sm,
.rs-btn--sm {
  min-height: 2.05rem;
  padding: 0 0.8rem;
  border-radius: 9px;
  font-size: 0.79rem;
}
.app-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}
.app-note--bad {
  background: var(--app-coral-soft);
  color: var(--app-coral);
}
.app-note--ok {
  background: var(--app-mint);
  color: var(--app-ok);
}
.app-note--warn {
  background: var(--app-amber-soft);
  color: var(--app-warn);
}
.rs-page {
  animation: app-fade-up 0.34s var(--app-ease) both;
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  max-width: 1100px;
}
.rs-page-head,
.core-page__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem 1.5rem;
  flex-wrap: wrap;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid color-mix(in srgb, var(--app-line) 70%, transparent);
  margin-bottom: 0;
}
.rs-eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--app-muted-2);
}
.rs-eyebrow a {
  color: inherit;
  text-decoration: none;
}
.rs-eyebrow a:hover {
  color: var(--app-link);
}
.rs-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
  gap: 0.7rem;
}
.rs-kpi {
  background: #fff;
  border: 1px solid var(--app-line);
  border-radius: 14px;
  padding: 0.95rem 1.05rem 1rem;
  box-shadow: var(--app-shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.rs-kpi__label {
  margin: 0;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--app-muted);
}
.rs-kpi__value {
  margin: 0;
  font-family: var(--app-mono);
  font-size: 1.55rem;
  font-weight: 500;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  line-height: 1.05;
}
.rs-kpi__hint {
  margin: 0;
  font-size: 0.75rem;
  color: var(--app-muted-2);
}
.rs-tabs {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 3px;
  gap: 0;
  background: #eef1f4;
  border: 1px solid var(--app-line);
  border-radius: 999px;
}
.rs-tabs button,
.rs-tabs a {
  border: 0;
  background: transparent;
  color: var(--app-muted);
  min-height: 2rem;
  padding: 0 0.9rem;
  border-radius: 999px;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.rs-tabs button:hover,
.rs-tabs a:hover {
  color: var(--app-ink);
}
.rs-tabs button.is-on,
.rs-tabs a.is-on {
  background: #fff;
  color: var(--app-ink);
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
}
.rs-tabs button:focus-visible,
.rs-tabs a:focus-visible {
  outline: 2px solid var(--app-link);
  outline-offset: 2px;
}
.rs-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--app-line);
  border-radius: 16px;
  background: #fff;
}
.rs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.rs-table th,
.rs-table td {
  text-align: left;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--app-line) 65%, transparent);
  vertical-align: middle;
}
.rs-table thead th {
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--app-muted-2);
  font-weight: 800;
  background: #fff;
}
.rs-table tbody tr:hover {
  background: var(--op-bg-deep, #f6f5f2);
}
.rs-table tbody tr:last-child td {
  border-bottom: 0;
}
.rs-skeleton {
  display: grid;
  gap: 0.7rem;
}
.rs-skeleton__bar {
  display: block;
  height: 0.85rem;
  border-radius: 8px;
  background:
    linear-gradient(
      90deg,
      var(--app-line),
      #f3f4f6,
      var(--app-line));
  background-size: 200% 100%;
  animation: rs-shimmer 1.1s ease-in-out infinite;
}
.rs-skeleton__bar--lg {
  height: 2.4rem;
}
@keyframes rs-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rs-skeleton__bar {
    animation: none;
  }
}
.rs-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 1.25rem;
  background: color-mix(in srgb, #0a0b0d 58%, transparent);
}
.rs-modal__card {
  width: min(520px, 100%);
  border: 1px solid var(--app-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 40px 90px -32px rgba(10, 11, 13, 0.45);
  overflow: hidden;
}
.rs-modal__head {
  padding: 1.3rem 1.4rem 1rem;
  border-bottom: 1px solid var(--app-line);
}
.rs-modal__kicker {
  margin: 0 0 0.3rem;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--app-teal);
}
.rs-modal__card--danger .rs-modal__kicker {
  color: var(--app-coral);
}
.rs-modal__title {
  margin: 0;
  font-size: 1.12rem;
  font-weight: 780;
  letter-spacing: -0.02em;
}
.rs-modal__body {
  padding: 1.15rem 1.4rem 1.3rem;
  color: var(--app-muted);
  font-size: 0.9rem;
  line-height: 1.55;
  white-space: pre-line;
}
.rs-modal__foot {
  display: flex;
  justify-content: flex-end;
  gap: 0.55rem;
  flex-wrap: wrap;
  padding: 0.95rem 1.4rem 1.1rem;
  border-top: 1px solid var(--app-line);
  background: var(--op-bg-deep, #f6f5f2);
}
.is-async-loading {
  position: relative !important;
  color: transparent !important;
  pointer-events: none;
  cursor: progress;
}
.is-async-loading > * {
  visibility: hidden;
}
.is-async-loading:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--app-ink) 22%, transparent);
  border-top-color: var(--app-teal);
  animation: rs-async-spin 0.6s linear infinite;
}
@keyframes rs-async-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .is-async-loading:after {
    animation: none;
  }
}
.rs-desk-loading {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  min-height: 32vh;
  padding: 2rem 1rem;
  text-align: center;
}
.rs-desk-loading__label {
  margin: 0;
  color: var(--app-muted);
  font-size: 0.82rem;
}
.rs-desk-loading__bars {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  width: min(320px, 88%);
}
.rs-desk-loading__bars i {
  display: block;
  height: 0.62rem;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      var(--app-line),
      color-mix(in srgb, var(--app-line) 40%, transparent),
      var(--app-line));
  background-size: 200% 100%;
  animation: rs-desk-shimmer 1.1s ease-in-out infinite;
}
.rs-desk-loading__bars i:nth-child(2) {
  width: 78%;
  animation-delay: 0.12s;
}
.rs-desk-loading__bars i:nth-child(3) {
  width: 52%;
  animation-delay: 0.24s;
}
@keyframes rs-desk-shimmer {
  0% {
    background-position: 100% 0;
  }
  to {
    background-position: -100% 0;
  }
}
.rs-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2rem;
}
.rs-switcher__label {
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--app-muted-2);
}
.rs-switcher__select {
  min-height: 2rem;
  border: 1px solid var(--app-line);
  border-radius: 8px;
  background: #fff;
  color: var(--app-ink);
  font-weight: 650;
  font-size: 0.82rem;
  padding: 0 1.6rem 0 0.55rem;
  cursor: pointer;
  appearance: none;
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      var(--app-muted) 50%),
    linear-gradient(
      135deg,
      var(--app-muted) 50%,
      transparent 50%);
  background-position: calc(100% - 14px) calc(50% - 2px), calc(100% - 9px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.rs-switcher__select:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--app-teal) 35%, var(--app-line));
}
.rs-switcher__select:focus-visible {
  outline: 2px solid var(--app-link);
  outline-offset: 2px;
}
.rs-switcher__select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.rs-context-switcher {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
}
.rs-product-nav {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
  flex: 1;
  padding: 0.15rem 0;
}
.rs-product-nav__group {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.35rem 0.2rem 0.45rem;
  border-radius: 12px;
}
.rs-product-nav__group:not(:first-child) {
  margin-top: 0.15rem;
  border-top: 1px solid var(--op-line, var(--app-line));
  padding-top: 0.7rem;
}
.rs-product-nav__section {
  margin: 0 0 0.35rem;
  padding: 0 0.55rem;
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--op-act-ink, var(--app-warn));
}
.rs-product-nav__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.35rem;
  padding: 0.4rem 0.65rem 0.4rem 0.55rem;
  border-radius: 10px;
  font-size: 0.86rem;
  font-weight: 550;
  color: var(--op-muted, var(--app-muted));
  text-decoration: none;
  transition: background 140ms var(--app-ease, ease), color 140ms var(--app-ease, ease);
}
.rs-product-nav__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: transparent;
  flex-shrink: 0;
}
.rs-product-nav__ico {
  width: 1.2rem;
  display: grid;
  place-items: center;
  color: #7c7a74;
  flex-shrink: 0;
}
.rs-product-nav__label {
  flex: 1;
  min-width: 0;
}
.rs-product-nav__link:hover {
  background: var(--op-bg-deep, #f6f5f2);
  color: var(--op-ink, var(--app-ink));
}
.rs-product-nav__link.is-active {
  background: var(--op-bg-deep, #f6f5f2);
  color: var(--op-ink, var(--app-ink));
  font-weight: 700;
}
.rs-product-nav__link.is-active .rs-product-nav__dot {
  background: var(--op-act, var(--app-accent-on-dark));
  box-shadow: 0 0 0 3px var(--op-act-soft, var(--app-amber-soft));
}
.rs-product-nav__badge {
  font-style: normal;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0.18rem 0.4rem;
  border-radius: 999px;
  background: var(--op-act, var(--app-accent-on-dark));
  color: var(--op-ink, var(--app-ink));
}
.rs-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.75rem;
  padding: 0;
  list-style: none;
  font-size: 0.78rem;
  color: var(--app-muted);
}
.rs-breadcrumbs li:not(:last-child)::after {
  content: "/";
  margin-left: 0.35rem;
  color: var(--app-muted-2);
}
.rs-breadcrumbs a {
  color: var(--app-link);
  text-decoration: none;
  font-weight: 650;
}
.rs-breadcrumbs a:hover {
  text-decoration: underline;
}
.rs-breadcrumbs span[aria-current] {
  color: var(--app-ink);
  font-weight: 650;
}
.rs-product-shell {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 0;
}
.rs-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.65rem;
}
.rs-kpi {
  display: block;
  padding: 0.85rem 0.95rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.14s var(--app-ease);
}
.rs-kpi:hover {
  border-color: color-mix(in srgb, var(--app-accent-on-dark) 35%, var(--app-line));
  text-decoration: none;
}
.rs-kpi__label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--app-muted-2);
}
.rs-kpi__value {
  margin: 0.2rem 0 0;
  font-size: 1.55rem;
  font-weight: 780;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.rs-kpi__hint {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--app-muted);
}
.rs-split {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 0.75rem;
}
.rs-panel {
  padding: 0.95rem 1rem 1.05rem;
}
.rs-panel__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.rs-panel__head h2 {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 750;
}
.rs-attention {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.rs-attention__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.7rem;
  border-radius: 10px;
  border: 1px solid var(--app-line);
  text-decoration: none;
  color: inherit;
  min-height: 3.25rem;
}
.rs-attention__row:hover {
  background: var(--op-bg-deep, #f6f5f2);
  text-decoration: none;
}
.rs-attention__copy strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 680;
}
.rs-attention__copy span {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.8rem;
  color: var(--app-muted);
  line-height: 1.35;
}
.rs-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  align-items: end;
}
.rs-filters .app-field {
  margin: 0;
  min-width: 10rem;
}
.rs-filters .app-field--grow {
  flex: 1 1 16rem;
}
.rs-table tbody tr.is-link {
  cursor: pointer;
}
.rs-table tbody tr.is-link:focus-visible {
  outline: 2px solid var(--app-link);
  outline-offset: -2px;
}
.rs-stepper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 1rem;
}
.rs-stepper button {
  min-height: 2.4rem;
}
.rs-section {
  margin: 0;
}
.rs-section h2 {
  margin: 0 0 0.65rem;
  font-size: 1.02rem;
  font-weight: 750;
}
.flow-command {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.flow-command .app-btn {
  min-height: 2.75rem;
  font-size: 0.84rem;
}
.flow-empty {
  padding: 2rem 1rem;
  text-align: center;
  max-width: 28rem;
  margin: 0 auto;
}
.flow-empty h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}
.flow-empty p {
  margin: 0 0 1rem;
  color: var(--app-muted);
}
.flow-muted {
  margin: 0;
  font-size: 0.88rem;
  color: var(--app-muted);
}
@media (max-width: 860px) {
  .rs-split {
    grid-template-columns: 1fr;
  }
}
.core-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  animation: app-fade-up 0.34s var(--app-ease) both;
}
.core-page--shell-title {
  gap: 0.85rem;
}
.core-page--shell-title .rs-page-head h1,
.core-page--shell-title .core-page__head h1 {
  font-size: 1.05rem;
  font-weight: 700;
}
:root {
  --app-bg: #fcfcfb;
  --app-bg-glow: #ffe7bc;
  --app-surface: #f6f5f2;
  --app-ink: #0a0b0d;
  --app-muted: #7c7a74;
  --app-muted-2: #9aa1ab;
  --app-line: #e8e6e1;
  --app-teal: #b0740c;
  --app-teal-soft: #ffe7bc;
  --app-teal-deep: #d9880b;
  --app-teal-glow: rgba(176, 116, 12, 0.18);
  --app-accent: var(--app-teal);
  --app-accent-ink: #0a0b0d;
  --app-accent-on-dark: #f0a31e;
  --app-link: #2545e6;
  --app-coral: #e11d48;
  --app-coral-soft: #ffe9e9;
  --app-mint: #e9f9f1;
  --app-ok: #0e9f6e;
  --app-amber: #f0a31e;
  --app-amber-soft: #ffe7bc;
  --app-peach: #fffaf0;
  --app-pink-soft: #fdeef6;
  --app-blue: #2545e6;
  --app-blue-soft: #eef4ff;
  --app-orange: #ff6b35;
  --app-orange-soft: #ffdfd4;
  --app-lime: #65a30d;
  --app-magenta: #db2777;
  --app-purple: #6d2e7a;
  --app-purple-soft: #eeddf2;
  --app-lavender: #f4f1ff;
  --app-warn: #9a6700;
  --app-danger: var(--app-coral);
  --app-radius: 14px;
  --app-radius-lg: 18px;
  --app-radius-xl: 24px;
  --app-radius-pill: 999px;
  --app-shadow: 0 1px 2px rgba(10, 11, 13, 0.04), 0 10px 28px rgba(10, 11, 13, 0.06);
  --app-shadow-sm: 0 1px 2px rgba(10, 11, 13, 0.05), 0 4px 12px rgba(10, 11, 13, 0.04);
  --app-shadow-lift: 0 8px 28px rgba(10, 11, 13, 0.1);
  --app-tap: 44px;
  --app-rail: 252px;
  --app-font:
    "IBM Plex Sans",
    "Segoe UI",
    sans-serif;
  --app-display:
    "Archivo",
    "IBM Plex Sans",
    sans-serif;
  --app-mono:
    "JetBrains Mono",
    "IBM Plex Mono",
    ui-monospace,
    monospace;
  --app-shell: #ffffff;
  --app-shell-ink: #0a0b0d;
  --app-shell-muted: #7c7a74;
  --app-shell-active: var(--app-teal-soft);
  --app-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --app-dur: 180ms;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  min-height: 100%;
  font-family: var(--app-font);
  color: var(--app-ink);
  background:
    radial-gradient(
      1200px 500px at 80% -10%,
      var(--app-bg-glow),
      transparent 55%),
    var(--app-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button,
input,
select,
textarea {
  font: inherit;
}
a {
  color: inherit;
  text-decoration: none;
}
h1,
h2,
h3,
h4 {
  letter-spacing: -0.02em;
  font-weight: 650;
}
::selection {
  background: var(--app-teal-soft);
  color: var(--app-teal-deep);
}
.app-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.app-field span {
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--app-muted);
}
.app-field input,
.app-field select,
.app-field textarea {
  min-height: var(--app-tap);
  padding: 0.5rem 0.85rem;
  border: 1.5px solid var(--app-line);
  border-radius: 12px;
  background: #fff;
  transition: border-color var(--app-dur) var(--app-ease), box-shadow var(--app-dur) var(--app-ease);
}
.app-field input:focus,
.app-field select:focus,
.app-field textarea:focus {
  outline: none;
  border-color: var(--app-link);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--app-link) 18%, transparent);
}
.app-card {
  background: var(--app-surface);
  border: 1px solid var(--app-line);
  border-radius: var(--app-radius-lg);
  padding: 1.15rem 1.25rem;
  box-shadow: var(--app-shadow-sm);
  transition: box-shadow var(--app-dur) var(--app-ease), transform var(--app-dur) var(--app-ease);
}
.app-note {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: var(--app-teal-soft);
  font-size: 0.9rem;
  color: var(--app-muted);
}
.app-empty {
  text-align: center;
  color: var(--app-muted);
  padding: 2.5rem 1rem;
}
.app-avatar {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    linear-gradient(
      145deg,
      #14b8a6 0%,
      #0f9f8d 45%,
      #3b82f6 100%);
  color: #fff;
  font-weight: 750;
  font-size: 0.78rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px var(--app-teal-glow);
  transition: transform var(--app-dur) var(--app-ease), box-shadow var(--app-dur) var(--app-ease);
}
@keyframes app-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes app-bar-in {
  from {
    transform: scaleY(0.2);
    opacity: 0.4;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}
.core-page {
  animation: app-fade-up 0.35s var(--app-ease) both;
  max-width: 1100px;
}
.core-page__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 1.15rem;
}
.core-page__head h1 {
  margin: 0;
  font-family: var(--app-font);
  font-size: clamp(1.45rem, 2.2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--app-ink);
}
.core-page__head p {
  margin: 0.35rem 0 0;
  color: var(--app-muted);
  font-size: 0.92rem;
  max-width: 42rem;
  line-height: 1.45;
}
.core-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.core-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.core-chip {
  min-height: 2.15rem;
  padding: 0 0.95rem;
  border-radius: var(--app-radius-pill);
  border: 1.5px solid var(--app-line);
  background: var(--app-surface);
  color: var(--app-muted);
  font-weight: 650;
  font-size: 0.82rem;
  cursor: pointer;
  transition:
    background var(--app-dur) var(--app-ease),
    border-color var(--app-dur) var(--app-ease),
    color var(--app-dur) var(--app-ease);
}
.core-chip:hover {
  border-color: #d0d5dd;
  color: var(--app-ink);
}
.core-chip.is-on {
  background: var(--app-teal-soft);
  border-color: color-mix(in srgb, var(--app-teal) 35%, var(--app-line));
  color: var(--app-teal-deep);
}
.core-table-wrap {
  overflow: auto;
  border-radius: var(--app-radius-lg);
  border: 1px solid var(--app-line);
  background: var(--app-surface);
  box-shadow: var(--app-shadow-sm);
}
.core-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.core-table th,
.core-table td {
  padding: 0.85rem 1rem;
  text-align: left;
  border-bottom: 1px solid var(--app-line);
  white-space: nowrap;
}
.core-table th {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--app-muted-2);
  background: #fafbfc;
}
.core-table tr:last-child td {
  border-bottom: none;
}
.core-table tbody tr {
  cursor: pointer;
  transition: background var(--app-dur) var(--app-ease);
}
.core-table tbody tr:hover {
  background: var(--app-teal-soft);
}
.core-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.15rem;
}
.core-metric {
  background: var(--app-surface);
  border: 1px solid var(--app-line);
  border-radius: var(--app-radius-lg);
  padding: 1rem 1.1rem;
  box-shadow: var(--app-shadow-sm);
}
.core-metric__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--app-muted-2);
}
.core-metric__value {
  margin: 0.35rem 0 0;
  font-family: var(--app-font);
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--app-ink);
  font-variant-numeric: tabular-nums;
}
.core-metric__hint {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: var(--app-muted);
}
.core-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
  padding: 0 0.55rem;
  border-radius: var(--app-radius-pill);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.core-badge--ok {
  background: var(--app-mint);
  color: var(--app-ok);
}
.core-badge--warn {
  background: var(--app-amber-soft);
  color: var(--app-warn);
}
.core-badge--muted {
  background: #f2f4f7;
  color: var(--app-muted);
}
.core-badge--info {
  background: var(--app-blue-soft);
  color: var(--app-blue);
}
.core-grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}
.core-spark {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 36px;
  margin-top: 0.65rem;
}
.core-spark span {
  flex: 1;
  border-radius: 3px 3px 0 0;
  background:
    linear-gradient(
      180deg,
      var(--app-teal) 0%,
      var(--app-teal-deep) 100%);
  min-height: 4px;
  transform-origin: bottom;
  animation: app-bar-in 0.45s var(--app-ease) both;
}

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