/* ===== CSS VARIABLES & RESET ===== */
:root {
  --c-primary: #2563EB;
  --c-primary-h: #1D4ED8;
  --c-primary-l: #EFF6FF;
  --c-secondary: #0891B2;
  --c-accent: #10B981;
  --c-warning: #F59E0B;
  --c-danger: #EF4444;
  --c-purple: #8B5CF6;

  --c-bg: #FFFFFF;
  --c-bg2: #F8FAFC;
  --c-bg3: #F1F5F9;
  --c-card: #FFFFFF;
  --c-border: #E2E8F0;
  --c-border2: #CBD5E1;

  --c-text: #0F172A;
  --c-text2: #334155;
  --c-text3: #64748B;
  --c-text-inv: #FFFFFF;

  --shadow-xs: 0 1px 2px rgb(0 0 0/.06);
  --shadow-sm: 0 1px 3px rgb(0 0 0/.1), 0 1px 2px rgb(0 0 0/.06);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0/.1), 0 2px 4px -2px rgb(0 0 0/.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0/.1), 0 4px 6px -4px rgb(0 0 0/.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0/.1), 0 8px 10px -6px rgb(0 0 0/.1);

  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-full: 9999px;

  --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;

  --transition: 180ms ease;
  --header-h: 64px;

  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px;
}

[data-theme="dark"] {
  --c-bg: #0F172A;
  --c-bg2: #1E293B;
  --c-bg3: #334155;
  --c-card: #1E293B;
  --c-border: #334155;
  --c-border2: #475569;
  --c-text: #F1F5F9;
  --c-text2: #CBD5E1;
  --c-text3: #94A3B8;
  --c-primary-l: #1e3a5f;
  --shadow-sm: 0 1px 3px rgb(0 0 0/.3);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0/.3);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0/.3);
}

[dir="rtl"] { direction: rtl; }

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--c-text);
  background: var(--c-bg);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  transition: background var(--transition), color var(--transition);
}

main { flex: 1; }

/* ===== TYPOGRAPHY ===== */
h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.25;
  color: var(--c-text);
}
h1 { font-size: clamp(1.6rem, 4vw, 2.5rem); }
h2 { font-size: clamp(1.3rem, 3vw, 1.875rem); }
h3 { font-size: clamp(1.1rem, 2.5vw, 1.375rem); }
h4 { font-size: 1.125rem; }
h5 { font-size: 1rem; }

p { color: var(--c-text2); margin-bottom: var(--space-4); }
p:last-child { margin-bottom: 0; }

a { color: var(--c-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--c-primary-h); }

strong { font-weight: 600; }
em { font-style: italic; }
small { font-size: 0.875em; }

/* ===== UTILITIES ===== */
.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;
}
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-muted { color: var(--c-text3); }
.text-success { color: var(--c-accent); }
.text-danger { color: var(--c-danger); }
.text-warning { color: var(--c-warning); }
.text-primary { color: var(--c-primary); }
.font-mono { font-family: var(--font-mono); }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.d-none { display: none !important; }
.d-block { display: block; }
.d-flex { display: flex; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-2 { gap: var(--space-2); }
.gap-4 { gap: var(--space-4); }
.gap-6 { gap: var(--space-6); }
.w-full { width: 100%; }
.mt-2 { margin-top: var(--space-2); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-6 { margin-bottom: var(--space-6); }
.p-4 { padding: var(--space-4); }
.p-6 { padding: var(--space-6); }
.rounded { border-radius: var(--r-md); }
.rounded-lg { border-radius: var(--r-lg); }
.bg-success { background: var(--c-accent); }
.bg-danger { background: var(--c-danger); }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1; }

/* ===== PRINT STYLES ===== */
@media print {
  body { background: white; color: black; }
  #site-header, #site-footer, .no-print,
  .btn-export, .btn-save, .btn-share,
  .calc-actions { display: none !important; }
  .card { box-shadow: none; border: 1px solid #ddd; page-break-inside: avoid; }
  .calc-layout { display: block; }
  .result-chart { page-break-before: auto; }
  h1 { font-size: 20pt; }
  table { width: 100%; border-collapse: collapse; }
  table th, table td { border: 1px solid #ddd; padding: 4pt 6pt; font-size: 9pt; }
  .print-header { display: block !important; }
}
.print-header { display: none; }
