/* Harbor Design System → 500-ui/system/harbor.css
   GENERATED by tools/ci/build_tokens.py from 500-ui/system/tokens.json. Do not hand-edit; CI fails on drift.
   Keeps the existing --hl-* names (every current desk stylesheet already reads them)
   and adds the full --h-* Harbor set. Fonts stay self-hosted (Source Serif 4, Public Sans). */
@font-face{font-family:"Public Sans";src:url("/system/fonts/public-sans-normal-5ed4d31c988e.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("/system/fonts/source-serif-4-normal-382475f38242.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("/system/fonts/source-serif-4-italic-b4f56ddc9873.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:swap}

:root{
  color-scheme:light;
  --h-frame-900:#0E2229;
  --h-frame-800:#12303A;
  --h-frame-700:#1A3D48;
  --h-frame-600:#245262;
  --h-frame-line:#2A4B55;
  --h-on-frame:#EAF2F0;
  --h-on-frame-muted:#B9CCCB;
  --h-on-frame-subtle:#8EA8AA;
  --h-beacon:#E3A83F;
  --h-beacon-on-frame:#F0C46B;
  --h-ground:#F2F0EB;
  --h-surface:#FBFAF7;
  --h-surface-raised:#FFFFFF;
  --h-surface-sunk:#E3E0D8;
  --h-surface-selected:#E6EEEC;
  --h-line:#E8E5DE;
  --h-control-border:#CFCBC1;
  --h-ink:#13262C;
  --h-ink-muted:#4D6066;
  --h-ink-label:#5A6E73;
  --h-tide:#12303A;
  --h-on-tide:#EAF2F0;
  --h-link:#1F5F6B;
  --h-seaglass:#2F7D73;
  --h-warn-bg:#F6E4D3;
  --h-warn-ink:#8A4210;
  --h-info-bg:#DDEAF0;
  --h-info-ink:#1E4B66;
  --h-ok-bg:#DCEDE4;
  --h-ok-ink:#1F5A39;
  --h-neutral-bg:#ECE8DE;
  --h-neutral-ink:#4F4A3C;
  --h-alert-dot:#D9662B;
  --h-error-border:#B4532A;
  --h-glass-fill:rgba(255, 253, 248, 0.35);
  --h-glass-border:rgba(255, 255, 255, 0.55);
  --h-space-1:4px;
  --h-space-2:8px;
  --h-space-3:12px;
  --h-space-4:16px;
  --h-space-5:24px;
  --h-space-6:32px;
  --h-space-7:48px;
  --h-radius-sm:10px;
  --h-radius-md:14px;
  --h-radius-lg:20px;
  --h-radius-pill:999px;
  --h-shadow-lift:0 6px 20px rgba(14, 34, 41, 0.14);
  --h-touch-min:48px;
  --h-touch-field:56px;
  --h-rail-width:248px;
  --h-overwatch-rail:360px;
  --h-shell-breakpoint:1024px;
  --h-launcher-rest:0.55;
  --h-launcher-awake:1;
  --h-display:"Source Serif 4",Charter,"Iowan Old Style",Georgia,serif;
  --h-sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --h-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --h-mark:#8fc1c4;            /* harbor-line.svg native fill */
  --h-glass-blur:12px;
  --h-launcher-size:64px;
  --h-launcher-size-phone:60px;
  --h-launcher-idle-ms:3000;

  /* ---- Remap of the existing --hl-* contract (names unchanged) ---- */
  --hl-paper:var(--h-ground);
  --hl-surface:var(--h-surface);
  --hl-subtle:var(--h-surface-sunk);
  --hl-ink:var(--h-ink);
  --hl-muted:var(--h-ink-muted);
  --hl-line:var(--h-line);
  --hl-accent:var(--h-tide);
  --hl-focus:var(--h-seaglass);
  --hl-attention:var(--h-alert-dot);   /* decoration only; text uses --h-warn-ink (test_design_tokens) */
  --hl-positive:var(--h-ok-ink);
  --hl-warning:var(--h-warn-ink);
  --hl-error:var(--h-error-border);
  --hl-display:var(--h-display);
  --hl-sans:var(--h-sans);
  --hl-control-edge:var(--h-control-border); /* decoration only; control edges use --h-ink-label (3:1) */
  --hl-copper:var(--h-beacon);         /* fills and stripes only; text uses --h-warn-ink */
  --hl-rail:var(--h-surface-sunk);     /* light until WO-2 restyles the rail text onto frame-800 */
  --hl-selected:var(--h-surface-selected);
  --hl-quiet-shadow:none;               /* Calm is premium: borders, not shadows */
  --hl-step-small:.8125rem; --hl-step-body:1rem; --hl-leading:1.5;
  --hl-space-1:.25rem; --hl-space-2:.5rem; --hl-space-3:.75rem; --hl-space-4:1rem; --hl-space-6:1.5rem; --hl-space-8:2rem;
  --hl-radius-micro:6px; --hl-radius-control:10px; --hl-radius-surface:14px; --hl-radius-panel:20px;
  --hl-shadow-panel:var(--h-shadow-lift);
  --hl-duration:160ms; --hl-easing:cubic-bezier(.22,.61,.36,1);
  --hl-tap:48px;                        /* was 44px; Harbor touch-min */
  --hl-tap-field:56px;
}
@media (max-width:1023px){:root{--hl-step-body:1.0625rem}}   /* Sun mode: 17px phone body */
:root[data-theme="night"]{
  color-scheme:dark;
  --h-frame-900:#070F12;
  --h-frame-800:#0B1A1F;
  --h-frame-700:#132A31;
  --h-frame-600:#1C3A44;
  --h-frame-line:#1E363E;
  --h-beacon:#E8B24F;
  --h-ground:#0F1B1F;
  --h-surface:#16252A;
  --h-surface-raised:#1D2F35;
  --h-surface-sunk:#2A3D43;
  --h-surface-selected:#21383F;
  --h-line:#22343A;
  --h-control-border:#3A5058;
  --h-ink:#EAF2F0;
  --h-ink-muted:#B9CCCB;
  --h-ink-label:#A3B8BA;
  --h-tide:#E3A83F;
  --h-on-tide:#0E2229;
  --h-link:#7FC3C9;
  --h-seaglass:#5FB3A6;
  --h-warn-bg:#4A2F1C;
  --h-warn-ink:#F4B88A;
  --h-info-bg:#1B3242;
  --h-info-ink:#A7CBE3;
  --h-ok-bg:#1E3A2C;
  --h-ok-ink:#9FD6B4;
  --h-neutral-bg:#33302A;
  --h-neutral-ink:#DCD5C3;
  --h-alert-dot:#E8834F;
  --h-error-border:#E07A4F;
  --h-glass-fill:rgba(22, 37, 42, 0.40);
  --h-glass-border:rgba(234, 242, 240, 0.18);
}
@media (prefers-color-scheme:dark){:root[data-theme="device"]{
  color-scheme:dark;
  --h-frame-900:#070F12;
  --h-frame-800:#0B1A1F;
  --h-frame-700:#132A31;
  --h-frame-600:#1C3A44;
  --h-frame-line:#1E363E;
  --h-beacon:#E8B24F;
  --h-ground:#0F1B1F;
  --h-surface:#16252A;
  --h-surface-raised:#1D2F35;
  --h-surface-sunk:#2A3D43;
  --h-surface-selected:#21383F;
  --h-line:#22343A;
  --h-control-border:#3A5058;
  --h-ink:#EAF2F0;
  --h-ink-muted:#B9CCCB;
  --h-ink-label:#A3B8BA;
  --h-tide:#E3A83F;
  --h-on-tide:#0E2229;
  --h-link:#7FC3C9;
  --h-seaglass:#5FB3A6;
  --h-warn-bg:#4A2F1C;
  --h-warn-ink:#F4B88A;
  --h-info-bg:#1B3242;
  --h-info-ink:#A7CBE3;
  --h-ok-bg:#1E3A2C;
  --h-ok-ink:#9FD6B4;
  --h-neutral-bg:#33302A;
  --h-neutral-ink:#DCD5C3;
  --h-alert-dot:#E8834F;
  --h-error-border:#E07A4F;
  --h-glass-fill:rgba(22, 37, 42, 0.40);
  --h-glass-border:rgba(234, 242, 240, 0.18);
}}
@media (prefers-reduced-motion:reduce){:root{--hl-duration:0ms}}

nav.sms-policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  justify-content: flex-start;
}
nav.sms-policy-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.access-credit .sms-policy-links { justify-content: center; }
