:root {
  --orange: #FF6B35;
  --orange-dark: #FF4500;
  --green: #22C55E;
  --dark: #1A1A2E;
  --gray: #6B7280;
  --light: #F9FAFB;
  --border: #E5E7EB;
  --radius: 14px;
  --shadow: 0 4px 24px rgba(0,0,0,.08);
}

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

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

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--dark);
  background: #fff;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--orange); }
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; }

/* Modal */
.modal {
  position: fixed; inset: 0;
  display: flex; align-items: flex-end;
  z-index: 1000;
}
.modal-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.5);
}
.modal-box {
  position: relative;
  background: #fff;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 20px 20px 0 0;
  padding: 24px;
  z-index: 1;
}
.modal-close {
  position: absolute; top: 16px; right: 16px;
  background: none; border: none; font-size: 20px;
  cursor: pointer; color: var(--gray);
}
.loading { text-align: center; padding: 40px; color: var(--gray); }

/* Utilities */
.text-center { text-align: center; }
.text-orange { color: var(--orange); }
.font-bold { font-weight: 700; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mb-1 { margin-bottom: 8px; }

/* 404 */
.page-404 { text-align: center; padding: 80px 24px; }
.page-404 h1 { font-size: 64px; color: var(--orange); }
.page-404 p { color: var(--gray); margin: 16px 0 24px; }
.page-404 a { color: var(--orange); font-weight: 700; }
