/* sykloo components: lifted verbatim from the sykloo design system.

   The design system is a separate snapshot that lives outside this
   repo (locally at ./design-system/ when present, otherwise re-fetch
   from the design source). Original source files within that snapshot:
   - project/preview/comp-buttons.html
   - project/preview/comp-inputs.html
   - project/preview/comp-badges.html
   - project/ui_kits/sykloo-app/styles.css

   When the design system is re-synced, replace this file's contents
   with the new canonical definitions. Do not edit component rules
   here without first updating the design system. */

/* -----------------------------------------------------------------
   Buttons
   ----------------------------------------------------------------- */

.btn {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 13px;
  line-height: 1;
  border-radius: var(--r-2);
  padding: 10px 14px;
  border: 1px solid transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition:
    background var(--dur-1) var(--ease-out),
    border-color var(--dur-1) var(--ease-out),
    transform var(--dur-1) var(--ease-out);
}

.btn-primary { background: var(--signal); color: var(--signal-ink); }
.btn-primary:hover { background: var(--signal-700); }
.btn-primary:active { background: var(--signal-700); transform: scale(.99); }

.btn-secondary {
  background: var(--slate-2);
  color: var(--fg-1);
}
.btn-secondary:hover {
  border-color: var(--border-strong);
  background: var(--slate-2);
}

.btn-ghost {
  background: transparent;
  color: var(--fg-3);
  padding: 10px 8px;
}
.btn-ghost:hover { color: var(--fg-1); }

.btn-danger {
  background: transparent;
  color: var(--danger);
  border-color: rgba(239, 68, 68, 0.32);
}

.btn[disabled] { opacity: .4; pointer-events: none; }
.btn svg { width: 14px; height: 14px; }

/* -----------------------------------------------------------------
   Inputs
   ----------------------------------------------------------------- */

.input {
  font-family: var(--font-sans);
  font-size: 13px;
  background: var(--slate);
  border: 1px solid var(--border);
  color: var(--fg-1);
  border-radius: var(--r-2);
  padding: 10px 12px;
  width: 100%;
  box-sizing: border-box;
  outline: none;
  transition: border-color var(--dur-1) var(--ease-out);
}
.input:focus { border-color: var(--signal); }
.input::placeholder { color: var(--fg-4); }

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.field-label {
  font-size: 11px;
  color: var(--fg-3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* -----------------------------------------------------------------
   Badges & status pills
   ----------------------------------------------------------------- */

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: var(--r-pill);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1;
}

.dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.badge-on-target { background: rgba(34, 197, 94, 0.12);  color: var(--success); }
.badge-warn      { background: rgba(245, 158, 11, 0.12); color: var(--warning); }
.badge-danger    { background: rgba(239, 68, 68, 0.12);  color: var(--danger); }
.badge-info      { background: rgba(56, 189, 248, 0.12); color: var(--info); }
.badge-neutral   { background: var(--slate-2); color: var(--fg-2); }
.badge-signal    { background: var(--signal);  color: var(--signal-ink); }
.badge-mono      { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
