:root {
      --nsw-brand-dark: #002664;
      --nsw-brand-light: #cbedfd;
      --nsw-brand-accent: #d7153a;
      --nsw-grey-01: #22272b;
      --nsw-grey-02: #495054;
      --nsw-grey-03: #cdd3d6;
      --nsw-off-white: #f2f2f2;
      --nsw-white: #ffffff;
      --nsw-text-dark: #22272b;
      --nsw-link: #002664;
      --nsw-hover: rgba(0, 38, 100, 0.1);
      --nsw-focus: rgb(0, 134, 179);
      --nsw-status-success: #008a07;
      --nsw-status-success-bg: #e5f6e6;
      --nsw-status-warning: #c95000;
      --nsw-status-warning-bg: #fbeee5;
      --nsw-status-error: #b81237;
      --nsw-status-error-bg: #f7e7eb;
      --nsw-font-family: "Public Sans", Arial, Helvetica, sans-serif;
      --nsw-line-height: 1.5;
      --nsw-border-radius: 0.25rem;
      --nsw-box-shadow: 0 0.25rem 0.75rem 0 rgba(0, 0, 0, 0.15);
      --nsw-spacing-sm: 1rem;
      --nsw-spacing-lg: 2rem;
      --nsw-spacing-xl: 3rem;
      --nsw-site-max-width: 75rem;
    }

    * { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    html { font-size: 100%; line-height: var(--nsw-line-height); }
    body {
      font-family: var(--nsw-font-family);
      color: var(--nsw-text-dark);
      background: var(--nsw-off-white);
      line-height: var(--nsw-line-height);
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    a { color: var(--nsw-link); text-underline-offset: 0.14em; }
    a:hover { background: var(--nsw-hover); color: var(--nsw-link); text-decoration-thickness: 2px; }
    .nsw-container { max-width: var(--nsw-site-max-width); margin: 0 auto; padding: 0 var(--nsw-spacing-sm); }
    .nsw-page { padding: var(--nsw-spacing-sm) 0 var(--nsw-spacing-xl); }
    .nsw-page-header { background: var(--nsw-white); border-bottom: 4px solid var(--nsw-brand-accent); margin-bottom: 0; padding: 0; min-height: 0; }
    h2, h3 { margin-top: 0; color: var(--nsw-text-dark); font-weight: 700; }
    h2 { font-size: 1.5rem; line-height: 1.25; margin-bottom: var(--nsw-spacing-sm); }
    h3 { font-size: 1.125rem; line-height: 1.3; margin-bottom: 0.5rem; }
    .nsw-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(19rem, 0.75fr); gap: var(--nsw-spacing-lg); align-items: start; }
    .nsw-card { background: var(--nsw-white); border: 1px solid var(--nsw-grey-03); border-radius: var(--nsw-border-radius); box-shadow: var(--nsw-box-shadow); overflow: hidden; }
    .nsw-card__content { padding: var(--nsw-spacing-lg); }
    .nsw-results-card { position: sticky; top: 1rem; }
    .nsw-section + .nsw-section { border-top: 1px solid var(--nsw-grey-03); margin-top: var(--nsw-spacing-lg); padding-top: var(--nsw-spacing-lg); }
    .nsw-form__label { display: block; font-size: 1.125rem; font-weight: 700; margin-bottom: 0.5rem; }
    .nsw-form__helper { color: var(--nsw-grey-02); font-size: 0.95rem; margin-bottom: var(--nsw-spacing-sm); max-width: 62ch; }
    .nsw-options { display: grid; gap: 0.75rem; }
    .nsw-option { align-items: flex-start; background: var(--nsw-white); border: 1px solid var(--nsw-grey-03); border-radius: var(--nsw-border-radius); cursor: pointer; display: flex; gap: 0.875rem; padding: 1rem; transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease; }
    .nsw-option:hover { background: #fcfdff; border-color: var(--nsw-brand-dark); box-shadow: inset 0 0 0 1px var(--nsw-brand-dark); }
    .nsw-option input { margin-top: 0.2rem; accent-color: var(--nsw-brand-dark); flex: 0 0 auto; }
    .nsw-option__body { min-width: 0; }
    .nsw-option__title { display: block; font-weight: 700; margin-bottom: 0.125rem; }
    .nsw-option__hint { color: var(--nsw-grey-02); display: block; font-size: 0.95rem; }
    .hidden { display: none; }
    .nsw-button-group, .nsw-result-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: var(--nsw-spacing-lg); }
    .nsw-result-actions { margin-top: 1rem; }
    .nsw-result-actions.hidden { display: none; }
    .nsw-button { appearance: none; border: 2px solid #0b3f47; border-radius: var(--nsw-border-radius); cursor: pointer; display: inline-flex; align-items: center; font-family: var(--nsw-font-family); font-size: 1rem; font-weight: 700; justify-content: center; min-height: 2.75rem; padding: 0.75rem 1.25rem; text-decoration: none; background: var(--nsw-white); color: #0b3f47; }
    .nsw-button:hover { background: #f8fafc; }

    .nsw-button:disabled,
    .nsw-button[aria-disabled="true"] {
      cursor: not-allowed;
      opacity: 0.5;
      background: #f2f2f2;
      color: #6b7280;
      border-color: #cdd3d6;
      box-shadow: none;
    }
    .nsw-button:disabled:hover,
    .nsw-button[aria-disabled="true"]:hover {
      background: #f2f2f2;
    }
    .nsw-button:focus, .nsw-option input:focus, a:focus { outline: 3px solid var(--nsw-focus); outline-offset: 2px; }
    .nsw-microcopy { color: var(--nsw-grey-02); font-size: 0.875rem; margin-top: var(--nsw-spacing-sm); }
    .nsw-tag-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 var(--nsw-spacing-sm); }
    .nsw-tag { background: var(--nsw-brand-light); border: 1px solid #8fb9d8; border-radius: 999px; color: var(--nsw-grey-01); display: inline-block; font-size: 0.9rem; font-weight: 700; padding: 0.45rem 0.8rem; }
    .nsw-empty-state { background: var(--nsw-off-white); border: 1px dashed var(--nsw-grey-03); border-radius: var(--nsw-border-radius); color: var(--nsw-grey-02); padding: 1rem; }
    .nsw-results-list { display: grid; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
    .nsw-result-item { border-left: 4px solid var(--nsw-status-success); background: var(--nsw-status-success-bg); border: 1px solid #b7dfbb; border-left-width: 4px; border-radius: var(--nsw-border-radius); padding: 1rem; }
    .nsw-alert { border-left: 4px solid var(--nsw-brand-accent); border-radius: var(--nsw-border-radius); margin: 1rem 0; padding: 1rem; }
    .nsw-alert--warning { background: var(--nsw-status-warning-bg); border-left-color: var(--nsw-status-warning); }
    .nsw-field-error { border-left: 4px solid var(--nsw-status-error); background: var(--nsw-status-error-bg); border-radius: var(--nsw-border-radius); color: var(--nsw-text-dark); margin-top: 0.75rem; padding: 0.75rem 1rem; }
    .nsw-field-error.hidden { display: none; }
    .nsw-section.has-error .nsw-form__label { color: var(--nsw-status-error); }
    .nsw-section.has-error .nsw-option { border-color: var(--nsw-status-error); }
    #quizContent { padding-bottom: 40px; box-sizing: border-box; }
    @media (max-width: 62rem) {
      .nsw-layout { grid-template-columns: 1fr; }
      .nsw-results-card { position: static; }
    }
    @media print {
      .nsw-button-group, .nsw-result-actions, .nsw-field-error { display: none !important; }
      .nsw-layout { display: block; }
      .nsw-results-card { position: static; margin-top: 1rem; }
      body { background: #fff; }
    }
