/* Investor Portal – Theme variables & base */
:root {
  --portal-primary: #0f4c81;
  --portal-primary-dark: #0a3559;
  --portal-accent: #0d9488;
  --portal-accent-light: #14b8a6;
  --portal-bg: #f8fafc;
  --portal-card-bg: #ffffff;
  --portal-text: #1e293b;
  --portal-text-muted: #64748b;
  --portal-border: #e2e8f0;
  --portal-success: #059669;
  --portal-warning: #d97706;
  --portal-shadow: 0 4px 6px -1px rgba(15, 76, 129, 0.08), 0 2px 4px -2px rgba(15, 76, 129, 0.06);
  --portal-shadow-lg: 0 10px 15px -3px rgba(15, 76, 129, 0.1), 0 4px 6px -4px rgba(15, 76, 129, 0.08);
  --portal-radius: 12px;
  --portal-radius-sm: 8px;
  --portal-font: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --portal-font-head: 'Outfit', var(--portal-font);
}

* {
  box-sizing: border-box;
}

body {
  font-family: var(--portal-font);
  color: var(--portal-text);
  background: var(--portal-bg);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--portal-font-head);
  font-weight: 600;
}

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

a:hover {
  color: var(--portal-primary-dark);
}

.btn-portal-primary {
  background: linear-gradient(135deg, var(--portal-primary), var(--portal-primary-dark));
  color: #fff;
  border: none;
  border-radius: var(--portal-radius-sm);
  font-weight: 500;
  padding: 0.6rem 1.25rem;
  box-shadow: var(--portal-shadow);
}

.btn-portal-primary:hover {
  background: linear-gradient(135deg, var(--portal-primary-dark), var(--portal-primary));
  color: #fff;
  box-shadow: var(--portal-shadow-lg);
}

.card-portal {
  background: var(--portal-card-bg);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow);
  border: 1px solid var(--portal-border);
}

.badge-portal-paid {
  background: rgba(5, 150, 105, 0.12);
  color: var(--portal-success);
  padding: 0.35em 0.65em;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 500;
}

.badge-portal-unpaid {
  background: rgba(100, 116, 139, 0.15);
  color: var(--portal-text-muted);
  padding: 0.35em 0.65em;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 500;
}
