* {
  box-sizing: border-box;
}

html, body, input, select, textarea, button {
  font-family: Arial, Helvetica, sans-serif;
}

body {
  font-family: Arial, sans-serif;
  background: #F7F8FA;
  color: #1F2937;
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
}

/* Centered container */
.container {
  width: min(100% - 32px, 760px);
  margin: 0 auto;
  padding: 24px 0 40px;
}

/* Header */
.header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.header h1 {
  color: #1279e2;
  font-weight: 600;
}

.logo {
  height: 35px;
  width: auto;
}

h1 {
  font-size: 22px;
  margin: 0;
}

h2 {
  margin-top: 0;
}

/* Cards */
.card {
  background: #FFFFFF;
  padding: 20px;
  margin: 20px 0;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

h3 {
  margin-top: 0;
}

/* Form */
label {
  display: block;
  font-size: 14px;
  margin-top: 10px;
  margin-bottom: 4px;
  font-weight: 500;
}

input, select, textarea {
  width: 100%;
  padding: 10px;
  font-size: 14px;
  border: 1px solid #ddd;
  border-radius: 6px;
  box-sizing: border-box;
}

textarea {
  min-height: 60px;
}

/* Button */
button {
  background: #2563EB;
  color: white;
  padding: 14px;
  border: none;
  cursor: pointer;
  width: 100%;
  border-radius: 8px;
  font-size: 16px;
  margin-top: 20px;
}

button:hover {
  background: #1E4FD8;
}

.secondary-btn {
  background: #E5E7EB;
  color: #1F2937;
}

.secondary-btn:hover {
  background: #D1D5DB;
}

/* Notes */
.note {
  font-size: 14px;
  color: #4B5563;
  margin-top: 12px;
}

/* Status colours (reserved for Pass 2) */
.ready { color: #16A34A; }
.warn  { color: #D97706; }
.bad   { color: #DC2626; }

/* ── Inputs card ── */
.inputs-card {
  background: #FFFFFF;
  padding: 20px;
  margin: 20px 0;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  border-left: 4px solid #1279e2;
}

.inputs-card h2 {
  font-size: 16px;
  font-weight: 600;
  color: #1279e2;
  margin: 0 0 4px 0;
}

.inputs-card .inputs-subtitle {
  font-size: 13px;
  color: #4B5563;
  margin: 0 0 16px 0;
}

.inputs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

/* ── Verdict zone (placeholder, logic in Pass 2) ── */
.verdict-zone {
  background: #FFFFFF;
  padding: 20px;
  margin: 20px 0;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  min-height: 64px;
}

.verdict-zone .verdict-placeholder {
  font-size: 14px;
  color: #9CA3AF;
  font-style: italic;
}

.verdict-label {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 4px 0;
}

.verdict-sublabel {
  font-size: 14px;
  color: #4B5563;
  margin: 0;
}

/* Verdict colour variants (reserved) */
.verdict-green  { color: #16A34A; }
.verdict-amber  { color: #D97706; }
.verdict-red    { color: #DC2626; }
.verdict-strong { color: #DC2626; }

/* ── Friction flag callouts ── */
.friction-flags {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}

.flag {
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.5;
}

.flag-amber {
  background: #FFFBEB;
  border-left: 3px solid #D97706;
  color: #92400E;
}

.flag-red {
  background: #FEF2F2;
  border-left: 3px solid #DC2626;
  color: #991B1B;
}

.flag-blue {
  background: #EFF6FF;
  border-left: 3px solid #2563EB;
  color: #1E40AF;
}

/* ── Planning disclaimer banner ── */
.disclaimer-banner {
  background: #F3F4F6;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 13px;
  color: #4B5563;
  margin-top: 14px;
  line-height: 1.5;
}

/* ── Checklist zone ── */
.checklist-section {
  background: #FFFFFF;
  padding: 20px;
  margin: 20px 0;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.checklist-section h3 {
  font-size: 15px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 14px 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #E5E7EB;
}

.checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #F3F4F6;
}

.checklist-item:last-child {
  border-bottom: none;
}

.checklist-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin-top: 2px;
  cursor: pointer;
  accent-color: #2563EB;
}

.checklist-item-body {
  flex: 1;
}

.checklist-item-title {
  font-size: 14px;
  font-weight: 500;
  color: #1F2937;
  margin: 0 0 2px 0;
}

.checklist-item-note {
  font-size: 13px;
  color: #6B7280;
  margin: 0;
}

/* Greyed-out / not-applicable items (logic in Pass 3) */
.checklist-item.not-applicable {
  opacity: 0.35;
  pointer-events: none;
}

.checklist-item.not-applicable .checklist-item-title::after {
  content: " — not applicable for your selection";
  font-weight: 400;
  font-style: italic;
  color: #9CA3AF;
}

/* ── Report / status (reserved for Pass 2+) ── */
.status {
  font-weight: bold;
  padding: 12px;
  margin: 15px 0;
  font-size: 18px;
}

.report {
  margin-top: 30px;
}

.report-section {
  border-top: 1px solid #eee;
  padding-top: 15px;
  margin-top: 15px;
}

ul {
  padding-left: 20px;
}

/* Links */
a {
  color: #2563EB;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* ── Footer ── */
.footer {
  text-align: center;
  margin-top: 40px;
  font-size: 13px;
  color: #6B7280;
}

.footer a {
  color: #2563EB;
  text-decoration: none;
}

.footer a:hover {
  text-decoration: underline;
}

.footer p {
  margin: 4px 0;
}

.footer-links {
  background: #FFFFFF;
  padding: 20px;
  margin: 20px 0 0 0;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  text-align: left;
}

.footer-links h3 {
  font-size: 14px;
  font-weight: 600;
  color: #1F2937;
  margin: 0 0 12px 0;
}

.footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  font-size: 13px;
  color: #4B5563;
  padding: 5px 0;
  border-bottom: 1px solid #F3F4F6;
  line-height: 1.5;
}

.footer-links li:last-child {
  border-bottom: none;
}

.footer-links li a {
  color: #2563EB;
}

.footer-links .reg-note {
  font-size: 12px;
  color: #6B7280;
  margin-top: 4px;
  display: block;
}

/* Export header */
.export-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.export-title {
  color: #2563EB;
  margin: 0;
}

.export-date {
  font-size: 16px;
  color: #6B7280;
  margin-top: -6px;
  margin-bottom: 12px;
}

/* ── Mobile ── */
@media (max-width: 600px) {
  body {
    font-size: 15px;
  }

  .container {
    width: min(100% - 20px, 760px);
    padding-top: 16px;
  }

  .header {
    align-items: flex-start;
  }

  h1 {
    font-size: 18px;
    line-height: 1.3;
  }

  .card,
  .inputs-card,
  .verdict-zone,
  .checklist-section,
  .footer-links {
    padding: 16px;
    margin: 14px 0;
  }

  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }

  button {
    padding: 13px;
  }

  .inputs-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
