@use "palette-colors" as *;

/* =========================
   SURFACES
========================= */

// Semantic surface aliases from Figma variable collection
$surface-page:    $neutral-0;
$surface-primary: $neutral-0;
$surface-secondary:$mint-300;
$surface-accent:  $yellow-300;
$surface-surface: $neutral-100;
$surface-panel:   $neutral-100;
$surface-panel-muted: $neutral-50;
$surface-panel-strong: rgba($neutral-900, 0.08);

/* =========================
   BORDERS
========================= */

$border-width-base:   1px;
$border-width-accent: 2px;
$border-style-base:   solid;
$border-color-base:   $neutral-900;
$border-color-muted:  $neutral-300;

/* =========================
   RADIUS
========================= */

// Figma kit uses rounded cards, buttons and inputs.
// Exact token was not visible in the style guide images;
// refine via Playwright comparison against component frames.
$radius-sm:  6px;
$radius-md:  10px;
$radius-lg:  16px;
$radius-xl:  24px;
$radius-full:9999px;

/* =========================
   MOTION
========================= */

$motion-fast: 0.15s;
$motion-base: 0.2s;
$motion-slow: 0.28s;
$motion-ease: ease;

/* =========================
   CONTROL SIZES
========================= */

$control-height-sm: 34px;
$control-height-md: 42px;
$control-height-lg: 52px;
$control-icon-rail-md: 40px;
$control-icon-rail-sm: 28px;
$control-choice-size: 20px;
$control-switch-width: 32px;
$control-switch-height: 16px;
$control-switch-knob: 20px;

/* =========================
   ICONS
========================= */

$icon-size-xs: 12px;
$icon-size-sm: 16px;
$icon-size-md: 20px;
$icon-size-lg: 24px;
$icon-size-xl: 28px;
$icon-size-display: 48px;

/* =========================
   FOCUS
========================= */

$focus-outline-width: 2px;
$focus-outline-offset: 2px;
$focus-outline-color: $mint-600;

@mixin focus_ring {
  outline: $focus-outline-width solid $focus-outline-color;
  outline-offset: $focus-outline-offset;
}

@mixin hard_panel($border-color: $border-color-muted, $accent-width: 0) {
  background: $surface-panel-muted;
  border: $border-width-base $border-style-base $border-color;
  border-radius: $radius-md;

  @if $accent-width != 0 {
    border-left-width: $accent-width;
  }
}

@mixin state_panel($color, $text-color: $neutral-0) {
  border-color: $color;

  .card-title,
  .toast-title,
  .modal-title {
    color: $text-color;
    background: $color;
  }
}
