:root {
  /* NSI Brand Colors */
  --nsi-header-bg: #1e2d40;
  --nsi-header-text: #ffffff;
  --nsi-primary: #c0392b;
  --nsi-primary-hover: #a93226;
  --nsi-accent: #2980b9;
  --nsi-bg: #f4f6f8;
  --nsi-card-bg: #ffffff;
  --nsi-border: #dde1e7;
  --nsi-text: #1a2332;
  --nsi-text-secondary: #6b7280;
  --nsi-error-bg: #fde8e8;
  --nsi-error-text: #b91c1c;
  --nsi-success: #16a34a;
  --nsi-warning: #d97706;

  font-family: 'Segoe UI', Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;
  color: var(--nsi-text);

  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

a {
  font-weight: 500;
  color: var(--nsi-accent);
  text-decoration: none;
}
a:hover {
  color: #1f6fa3;
  text-decoration: underline;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background-color: var(--nsi-bg);
}

h1, h2, h3, h4, h5, h6 {
  color: var(--nsi-text);
  font-family: 'Segoe UI', Arial, sans-serif;
}

h1 {
  font-size: 2.2em;
  line-height: 1.2;
  font-weight: 700;
}

@media (max-width: 768px) {
  body {
    font-size: 14px;
  }

  button {
    min-height: 44px; /* Touch target size */
  }

  input, select, textarea {
    font-size: 16px; /* Prevent iOS auto-zoom on focus */
  }
}
.app {
  font-family: 'Segoe UI', Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: #f4f6f8;
}

@media (max-width: 768px) {
  .app {
    margin: 0;
  }
}

/* Mobile responsive */
@media (max-width: 768px) {
  .container {
    padding: 10px !important;
  }
  .header {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .grid {
    overflow-x: auto;
  }
}
