/* ============================================================
   FastShip Design Tokens
   Source of truth: /DESIGN.md (Apple museum gallery system)
   Imported by: dashboard.css, admin.css, styles.css
   DO NOT inline hex values elsewhere — always reference tokens.
   ============================================================ */

:root {
    color-scheme: light;
    /* ── Colors ─────────────────────────────────────────────── */
    --color-primary:        #1a2744;   /* FastShip Navy */
    --color-primary-focus:  #243060;
    --color-primary-on-dark:#7b9fd4;
    --color-ink:            #1d1d1f;
    --color-body:           #1d1d1f;
    --color-body-on-dark:   #ffffff;
    --color-body-muted:     #cccccc;
    --color-ink-muted-80:   #333333;
    --color-ink-muted-48:   #7a7a7a;
    --color-divider-soft:   #f0f0f0;
    --color-hairline:       #e0e0e0;
    --color-canvas:         #ffffff;
    --color-parchment:      #f5f5f7;
    --color-pearl:          #fafafc;
    --color-tile-1:         #272729;
    --color-tile-2:         #2a2a2c;
    --color-tile-3:         #252527;
    --color-black:          #000000;
    --color-chip-translucent: rgba(210, 210, 215, 0.64);
    --color-success:        #1d7a3a;   /* used sparingly for PAID/OK */
    --color-warn:           #a56300;   /* DRAFT */
    --color-danger:         #b3261e;   /* errors only */

    /* ── Typography ─────────────────────────────────────────── */
    --font-display: "SF Pro Display", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --font-text:    "SF Pro Text", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

    /* ── Radii ──────────────────────────────────────────────── */
    --r-none:  0;
    --r-xs:    5px;
    --r-sm:    8px;
    --r-md:    11px;
    --r-lg:    18px;
    --r-pill:  9999px;
    --r-full:  9999px;

    /* ── Spacing ────────────────────────────────────────────── */
    --s-xxs:   4px;
    --s-xs:    8px;
    --s-sm:    12px;
    --s-md:    17px;
    --s-lg:    24px;
    --s-xl:    32px;
    --s-xxl:   48px;
    --s-section: 80px;

    /* ── Elevation (single product shadow only) ─────────────── */
    --shadow-product: 3px 5px 30px 0 rgba(0, 0, 0, 0.22);
    --ring-focus:    0 0 0 2px var(--color-primary-focus);

    /* ── Motion ─────────────────────────────────────────────── */
    --press: transform 0.12s ease;

    /* ── Layout ─────────────────────────────────────────────── */
    --max-content: 1440px;
    --hairline:    1px solid var(--color-hairline);
}

/* ── Reset (gentle) ─────────────────────────────────────────── */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--font-text);
    font-size: 17px;
    font-weight: 400;
    line-height: 1.47;
    letter-spacing: -0.374px;
    color: var(--color-ink);
    background: var(--color-canvas);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--color-ink);
    margin: 0;
}

button {
    font-family: var(--font-text);
    cursor: pointer;
    border: none;
    background: none;
    color: inherit;
}

input, select, textarea {
    font-family: var(--font-text);
    font-size: 17px;
    color: var(--color-ink);
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

::selection { background: rgba(0, 102, 204, 0.18); }

/* ── Shared utility classes (opt-in) ─────────────────────── */
.fs-btn-primary {
    background: var(--color-primary);
    color: #fff;
    font-size: 17px;
    font-weight: 400;
    letter-spacing: -0.374px;
    padding: 11px 22px;
    border-radius: var(--r-pill);
    transition: var(--press);
}
.fs-btn-primary:active { transform: scale(0.95); }
.fs-btn-primary:focus-visible { outline: none; box-shadow: var(--ring-focus); }
.fs-btn-primary[disabled] { background: var(--color-divider-soft); color: var(--color-ink-muted-48); cursor: not-allowed; }

.fs-btn-dark {
    background: var(--color-ink);
    color: #fff;
    font-size: 14px;
    line-height: 1.29;
    letter-spacing: -0.224px;
    padding: 8px 15px;
    border-radius: var(--r-sm);
    transition: var(--press);
}
.fs-btn-dark:active { transform: scale(0.95); }

.fs-card {
    background: var(--color-canvas);
    border: var(--hairline);
    border-radius: var(--r-lg);
    padding: var(--s-lg);
}

.fs-frosted {
    background: rgba(245, 245, 247, 0.8);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: var(--hairline);
}

.fs-hairline { border-bottom: var(--hairline); }
.fs-muted    { color: var(--color-ink-muted-48); }
