/* FLOCORE Chameleon — Layer A token contract.
 *
 * The NAMES are FLOCORE's and are identical across every tenant. The VALUES are
 * Leisure Lounge's. Nothing downstream of this file may hardcode a colour, a radius
 * or a font — that is what makes the same components reskin per tenant.
 *
 * Tenant: leisure-lounge
 */
:root{
  /* surfaces */
  --fc-surface:            #f4efe7;
  --fc-surface-raised:     #ffffff;
  --fc-surface-sunken:     #e4d6bc;
  --fc-surface-inverse:    #1b1d17;

  /* text */
  --fc-text:               #2c3406;
  --fc-text-muted:         #6b6259;   /* 5.7:1 on surface — passes AA */
  --fc-text-subtle:        #4a473d;
  --fc-text-inverse:       #f2efe6;   /* 14.8:1 on --fc-surface-inverse */
  /* Text ON the inverse surface. Added 2026-08-17 — the dark navigation rail had no tones of its
   * own, so every screen that used one invented greys and fell off the contract. Measured
   * against --fc-surface-inverse #1b1d17. */
  --fc-text-inverse-muted: #a5a495;   /* 6.8:1  */
  --fc-text-inverse-dim:   #8e8c7e;   /* 5.1:1 — the quietest tone still safe for body copy */
  --fc-surface-inverse-hi: #262922;   /* hover on the inverse surface */
  --fc-surface-inverse-lo: #14160f;   /* pressed / deeper */
  /* Text sitting ON a filled accent chip or an active nav item. --fc-text-inverse manages only
   * 3.88:1 against --fc-accent-fill; pure white reaches 4.46:1 and is the only tone that clears
   * AA there, so it is named rather than sprinkled around as #fff. */
  --fc-text-on-fill:       #ffffff;

  /* lines */
  --fc-border:             #e0d9cd;
  --fc-border-strong:      #6e5e3a;

  /* brand + intent
   *
   * These were measured on 2026-08-17 and four of them failed. --fc-warning was 2.19:1 on the
   * plain surface and 1.75:1 on sunken — unreadable, and it had been in the contract from the
   * start because nothing checked it. The values below are the same hues darkened until each one
   * clears 4.5:1 against the LIGHTEST ground it can land on (--fc-surface-sunken), so a token can
   * be used for text anywhere without checking first.
   *
   * The original brighter tones are kept as -fill for backgrounds, chips and bars, where contrast
   * against text is what matters rather than contrast against the page.
   *
   * scripts/check_ui.py enforces this. Do not restore a value without running it.
   */
  --fc-brand:              #2c3406;
  --fc-accent:             #835039;   /* 4.62:1 on sunken · was #a8674a at 3.11:1 */
  --fc-success:            #44662a;   /* 4.61:1 · was #5c8a3a at 2.84:1 */
  --fc-warning:            #7d5624;   /* 4.54:1 · was #d9963f at 1.75:1 */
  --fc-danger:             #98422d;   /* 4.65:1 · was #c4553a at 3.11:1 */
  --fc-info:               #3d4a5e;

  /* fills — for backgrounds and bars, never for text */
  --fc-accent-fill:        #a8674a;
  --fc-success-fill:       #5c8a3a;
  --fc-warning-fill:       #d9963f;
  --fc-danger-fill:        #c4553a;

  /* intent surfaces */
  --fc-success-surface:    #eef4e6;
  --fc-warning-surface:    #fdf3e3;
  --fc-danger-surface:     #fbeae6;

  /* type */
  --fc-font-body:          'Jost','Avenir Next',system-ui,Arial,sans-serif;
  --fc-font-display:       'Cinzel',Georgia,serif;
  --fc-text-xs:            .75rem;
  --fc-text-sm:            .88rem;
  --fc-text-md:            1rem;
  --fc-text-lg:            1.25rem;
  --fc-text-xl:            1.7rem;

  /* space + shape */
  --fc-space-1:            4px;
  --fc-space-2:            8px;
  --fc-space-3:            12px;
  --fc-space-4:            18px;
  --fc-space-5:            26px;
  --fc-radius-sm:          9px;
  --fc-radius-md:          12px;
  --fc-radius-lg:          16px;

  /* interaction — 44px is the WCAG 2.5.8 / iOS HIG floor, not a preference */
  --fc-tap-min:            44px;
  --fc-tap-floor:          64px;      /* factory floor: dusty hands, poor light */
  --fc-focus-ring:         2px solid var(--fc-accent);

  /* elevation + scrim — named so a screen never hand-rolls a shadow and drifts off the system */
  --fc-shadow-lift:        0 10px 24px -14px rgba(44,52,6,.35);
  --fc-shadow-modal:       0 24px 60px -20px rgba(44,52,6,.45);
  --fc-scrim:              rgba(27,29,23,.55);
}

/* Layer C may override values, never names. The floor screen runs dark. */
[data-skin="floor"]{
  --fc-surface:            #1b1d17;
  --fc-surface-raised:     #262922;
  --fc-surface-sunken:     #31352c;
  --fc-text:               #f2efe6;
  --fc-text-muted:         #a5a495;
  --fc-border:             #3d4237;
  --fc-brand:              #8fa03f;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{background:var(--fc-surface);color:var(--fc-text-subtle);font:var(--fc-text-md)/1.5 var(--fc-font-body)}
a,button{font-family:inherit}
:focus-visible{outline:var(--fc-focus-ring);outline-offset:2px}

/* Every interactive element clears the tap floor. Declared once, not per screen. */
a,button,input,select,[role="button"]{min-height:var(--fc-tap-min)}
@media (pointer:coarse){
  a[href^="tel:"],a[href^="mailto:"]{min-height:var(--fc-tap-min);display:inline-flex;align-items:center}
}
