/* ═══════════════════════════════════════════════════════
   RUBICON CLIENT PORTAL v2 — BASE STYLES
   Preserves design language from v1 (dark/gold/Cormorant)
   ═══════════════════════════════════════════════════════ */

:root {
  /* Colors */
  --black: #0a0a0a;
  --gray: #1a1a1a;
  --gray2: #111;
  --gray3: #2a2a2a;
  --white: #f5f0e8;
  --muted: #888;
  --gold: #c9a84c;
  --gold-dim: rgba(201, 168, 76, 0.6);
  --gold-bg: rgba(201, 168, 76, 0.05);
  --green: #5d5;
  --red: #d35;
  
  /* Typography */
  --font-serif: 'Cormorant Garamond', serif;
  --font-sans: 'Syne', sans-serif;
  --font-mono: 'DM Mono', monospace;
  
  /* Spacing */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 40px;
  
  /* Layout */
  --sidebar-width: 260px;
  --topbar-height: 60px;
  --max-content-width: 1200px;
  
  /* Motion */
  --transition: 0.2s ease;
}

/* Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  overflow-x: hidden;
}

body {
  background: var(--black);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Typography defaults */
h1, h2, h3, h4 {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.2;
}

h1 { font-size: 32px; }
h2 { font-size: 24px; }
h3 { font-size: 20px; }
h4 { font-size: 16px; }

em, i {
  font-style: italic;
  color: var(--gold);
}

a {
  color: var(--gold);
  text-decoration: none;
  transition: opacity var(--transition);
}

a:hover {
  opacity: 0.8;
}

strong, b {
  font-weight: 600;
}

/* Utility: monospace accent labels */
.label-mono {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
}

/* Utility: subtle caps header */
.section-hdr {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--gray3);
}

/* Screen readers only */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Scrollbar styling */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: var(--black);
}

::-webkit-scrollbar-thumb {
  background: var(--gray3);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--gold-dim);
}
