/* Google Fonts, loaded via CDN import (no local binaries shipped). Source Sans 3 = UI/body; Libre Caslon Text = headline serif accent. */
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&display=swap');

:root{
--navy-900:#0f2338;--navy-800:#16324f;--navy-700:#1f3a5f;--navy-600:#2c4f7c;--navy-500:#3d6494;--navy-100:#dbe4ee;--navy-50:#eef2f7;
--linen-100:#f5f4f0;--linen-50:#fbfaf7;--linen-200:#eae7de;
--ink-900:#20241f;--ink-700:#3f453e;--ink-500:#6b7169;--ink-300:#9aa097;--ink-100:#d8d6cf;
--gold-600:#b98f52;--gold-500:#c9a876;--gold-100:#f1e6d2;
--success-600:#3f7a56;--warning-600:#a06a2a;--error-600:#a33f3f;
--white:#ffffff;
--color-primary:var(--navy-700);--color-primary-hover:var(--navy-800);--color-primary-active:var(--navy-900);--color-primary-tint:var(--navy-100);
--color-accent:var(--gold-500);--color-accent-tint:var(--gold-100);
--surface-page:var(--linen-100);--surface-card:var(--white);--surface-sunken:var(--linen-200);--surface-inverse:var(--navy-900);
--text-primary:var(--ink-900);--text-secondary:var(--ink-500);--text-muted:var(--ink-300);--text-on-primary:var(--white);--text-on-inverse:var(--linen-50);
--border-subtle:var(--ink-100);--border-default:var(--ink-300);
--state-success:var(--success-600);--state-warning:var(--warning-600);--state-error:var(--error-600);
}

:root{
--font-sans:'Source Sans 3',-apple-system,'Segoe UI',sans-serif;
--font-serif:'Libre Caslon Text',Georgia,serif;
--text-display-xl:3.5rem;
--text-display-lg:2.75rem;
--text-display-md:2rem;
--text-heading:1.5rem;
--text-subheading:1.25rem;
--text-body-lg:1.125rem;
--text-body:1rem;
--text-small:0.875rem;
--text-caption:0.75rem;
--leading-tight:1.1;
--leading-snug:1.3;
--leading-normal:1.5;
--leading-relaxed:1.65;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
--tracking-tight:-0.01em;--tracking-normal:0;--tracking-wide:0.04em;
}

:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-pill:999px;
--shadow-sm:0 1px 2px rgba(32,36,31,0.06);
--shadow-md:0 4px 16px rgba(32,36,31,0.08);
--shadow-lg:0 12px 32px rgba(32,36,31,0.10);
--border-width:1px;
--max-content-width:1120px;
--ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
--duration-fast:120ms; /* @kind other */
--duration-base:200ms; /* @kind other */
}

.rcg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--weight-semibold);border-radius:var(--radius-md);border:var(--border-width) solid transparent;cursor:pointer;transition:background var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard);white-space:nowrap}
.rcg-btn--md{padding:12px 22px;font-size:var(--text-body)}
.rcg-btn--lg{padding:16px 28px;font-size:var(--text-body-lg)}
.rcg-btn--primary{background:var(--color-primary);color:var(--text-on-primary)}
.rcg-btn--primary:hover{background:var(--color-primary-hover)}
.rcg-btn--primary:active{background:var(--color-primary-active)}
.rcg-btn--secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.rcg-btn--secondary:hover{background:var(--color-primary-tint)}
.rcg-btn--ghost{background:transparent;color:var(--text-primary)}
.rcg-btn--ghost:hover{background:var(--surface-sunken)}
.rcg-btn--disabled{opacity:0.45;cursor:not-allowed;pointer-events:none}
.rcg-icon{width:1.1em;height:1.1em;flex-shrink:0}

.rcg-field{display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-sans)}
.rcg-field label{font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary)}
.rcg-input{font-family:var(--font-sans);font-size:var(--text-body-lg);padding:14px 16px;border-radius:var(--radius-md);border:var(--border-width) solid var(--border-default);background:var(--white);color:var(--text-primary);outline:none;transition:border-color var(--duration-base) var(--ease-standard)}
.rcg-input::placeholder{color:var(--text-muted)}
.rcg-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-tint)}

.rcg-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--weight-medium);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-pill);background:var(--surface-sunken)}
.rcg-badge--accent{background:var(--color-accent-tint);color:var(--ink-900)}
.rcg-badge .rcg-icon{width:16px;height:16px}

.rcg-card{background:var(--surface-card);border-radius:var(--radius-lg);border:var(--border-width) solid var(--border-subtle)}
.rcg-card--md{padding:var(--space-5)}
.rcg-card--lg{padding:var(--space-7)}
.rcg-card--sunken{background:var(--surface-sunken);border-color:transparent}
.rcg-card--shadow{box-shadow:var(--shadow-md);border-color:transparent}

.rcg-icon-tile{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);flex-shrink:0}
.rcg-icon-tile--neutral{background:var(--surface-sunken);color:var(--color-primary)}
.rcg-icon-tile--primary{background:var(--color-primary);color:var(--text-on-primary)}
.rcg-icon-tile--accent{background:var(--color-accent-tint);color:var(--gold-600)}

