.noc-woningcheck {
  --noc-navy: #062F5E;
  --noc-blue: #0E58A0;
  --noc-cobalt: #1469BD;
  --noc-azulejo: #2F82C5;
  --noc-light: #DCECF8;
  --noc-powder: #EDF5FB;
  --noc-ivory: #FFFAF2;
  --noc-white: #FFFFFF;
  --noc-terracotta: #D47E5D;
  --noc-soft-terra: #F5E1D7;
  --noc-text: #15395F;
  --noc-muted: #506B85;
  --noc-line: #B9CDE0;
  --noc-shadow: 0 14px 34px rgba(6, 47, 94, .09);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--noc-text);
  line-height: 1.55;
}

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

.noc-woningcheck button,
.noc-woningcheck textarea,
.noc-woningcheck input { font: inherit; }

.noc-woningcheck__shell {
  max-width: 1040px;
  margin: 0 auto;
  background: var(--noc-ivory);
  border: 1px solid rgba(185, 205, 224, .75);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--noc-shadow);
}

.noc-woningcheck__hero {
  padding: clamp(28px, 5vw, 58px);
  background: var(--noc-navy);
  color: var(--noc-white);
  position: relative;
}

.noc-woningcheck__hero::after {
  content: "";
  position: absolute;
  right: 32px;
  top: 32px;
  width: 58px;
  height: 58px;
  border: 2px solid rgba(255,255,255,.22);
  border-radius: 50%;
  box-shadow: 18px 18px 0 -12px rgba(212,126,93,.9);
}

.noc-woningcheck__eyebrow {
  margin: 0 0 10px;
  color: #CAE4F7;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.noc-woningcheck__hero h2 {
  margin: 0;
  max-width: 820px;
  color: var(--noc-white);
  font-size: clamp(30px, 5vw, 54px);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.noc-woningcheck__intro {
  max-width: 790px;
  margin: 18px 0 0;
  color: #E6F2FB;
  font-size: clamp(16px, 2vw, 19px);
}

.noc-woningcheck__notice {
  margin-top: 24px;
  padding: 15px 18px;
  display: flex;
  gap: 8px 16px;
  align-items: baseline;
  flex-wrap: wrap;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
  color: #F8FBFE;
}
.noc-woningcheck__notice strong { color: #fff; }
.noc-woningcheck__notice span { color: #DCECF8; }

.noc-woningcheck__setup,
.noc-woningcheck__main,
.noc-woningcheck__sources,
.noc-woningcheck__footer { padding: clamp(22px, 4vw, 42px); }

.noc-woningcheck__setup { background: #fffdf9; border-bottom: 1px solid var(--noc-line); }

.noc-woningcheck__section-head {
  display: flex;
  gap: 15px;
  align-items: flex-start;
  margin-bottom: 24px;
}

.noc-woningcheck__stepno {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border-radius: 12px;
  background: var(--noc-light);
  color: var(--noc-navy);
  font-weight: 900;
  font-size: 13px;
}

.noc-woningcheck__section-head h3 {
  margin: 0;
  color: var(--noc-navy);
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.18;
}
.noc-woningcheck__section-head p { margin: 6px 0 0; color: var(--noc-muted); }

.noc-woningcheck__setup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.noc-woningcheck__field {
  margin: 0;
  padding: 18px;
  border: 1px solid var(--noc-line);
  border-radius: 16px;
  background: var(--noc-white);
}
.noc-woningcheck__field legend {
  padding: 0 6px;
  color: var(--noc-navy);
  font-weight: 800;
}
.noc-woningcheck__field label {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 0;
  cursor: pointer;
}
.noc-woningcheck__field input { accent-color: var(--noc-blue); }

.noc-woningcheck__smart-note {
  margin-top: 16px;
  padding: 16px 18px;
  border-left: 4px solid var(--noc-terracotta);
  border-radius: 12px;
  background: var(--noc-soft-terra);
  color: #6f3c2a;
}
.noc-woningcheck__smart-note strong { color: #6a321f; }

.noc-woningcheck__progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  background: var(--noc-white);
  border-bottom: 1px solid var(--noc-line);
}
.noc-woningcheck__progress button {
  min-width: 0;
  padding: 15px 8px;
  border: 0;
  border-right: 1px solid var(--noc-line);
  background: transparent;
  color: var(--noc-muted);
  cursor: pointer;
  font-weight: 750;
  font-size: 13px;
}
.noc-woningcheck__progress button:last-child { border-right: 0; }
.noc-woningcheck__progress button span {
  display: inline-flex;
  width: 25px;
  height: 25px;
  margin-right: 5px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--noc-powder);
  color: var(--noc-blue);
}
.noc-woningcheck__progress button.is-active {
  background: var(--noc-powder);
  color: var(--noc-navy);
}
.noc-woningcheck__progress button.is-active span { background: var(--noc-blue); color: #fff; }

.noc-woningcheck__counter {
  padding: 13px clamp(22px, 4vw, 42px);
  background: var(--noc-white);
  border-bottom: 1px solid var(--noc-line);
  color: var(--noc-muted);
  font-size: 13px;
}
.noc-woningcheck__counterbar {
  height: 5px;
  margin-top: 8px;
  background: var(--noc-powder);
  border-radius: 99px;
  overflow: hidden;
}
.noc-woningcheck__counterbar span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--noc-blue);
  transition: width .25s ease;
}

.noc-woningcheck__main { background: var(--noc-ivory); }
.noc-woningcheck__panel { display: none; }
.noc-woningcheck__panel.is-active { display: block; }

.noc-woningcheck__items { display: grid; gap: 12px; }

.noc-woningcheck__item {
  padding: 18px;
  border: 1px solid var(--noc-line);
  border-radius: 16px;
  background: var(--noc-white);
}
.noc-woningcheck__item.is-priority { border-left: 5px solid var(--noc-terracotta); }
.noc-woningcheck__item-head { display: flex; gap: 12px; justify-content: space-between; align-items: flex-start; }
.noc-woningcheck__item-copy { min-width: 0; }
.noc-woningcheck__item h4 { margin: 0; color: var(--noc-navy); font-size: 17px; }
.noc-woningcheck__item p { margin: 6px 0 0; color: var(--noc-muted); font-size: 14px; }
.noc-woningcheck__tag {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 99px;
  background: var(--noc-soft-terra);
  color: #80422D;
  font-size: 11px;
  font-weight: 800;
}

.noc-woningcheck__status {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.noc-woningcheck__status button {
  min-width: 0;
  padding: 9px 8px;
  border: 1px solid var(--noc-line);
  border-radius: 10px;
  background: var(--noc-white);
  color: var(--noc-text);
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
}
.noc-woningcheck__status button:hover { border-color: var(--noc-blue); }
.noc-woningcheck__status button.is-selected[data-status="checked"] { background: #E8F1F8; border-color: #80A9CF; color: #315F82; }
.noc-woningcheck__status button.is-selected[data-status="attention"] { background: #F7E7DD; border-color: #E1B39F; color: #80422D; }
.noc-woningcheck__status button.is-selected[data-status="unknown"] { background: #EDF2F7; border-color: #B9CDE0; color: #5A6D80; }
.noc-woningcheck__status button.is-selected[data-status="na"] { background: #F8F4EC; border-color: #D7CEC0; color: #6A665F; }

.noc-woningcheck__note-toggle {
  margin-top: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--noc-blue);
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
}
.noc-woningcheck__item-note { display: none; margin-top: 10px; }
.noc-woningcheck__item-note.is-open { display: block; }
.noc-woningcheck textarea {
  width: 100%;
  resize: vertical;
  border: 1px solid var(--noc-line);
  border-radius: 12px;
  background: #fff;
  color: var(--noc-text);
  padding: 12px 13px;
}
.noc-woningcheck textarea:focus { outline: 3px solid rgba(47,130,197,.16); border-color: var(--noc-azulejo); }

.noc-woningcheck__section-note {
  margin-top: 22px;
  padding: 18px;
  border-radius: 16px;
  background: var(--noc-powder);
}
.noc-woningcheck__section-note label { display: block; margin-bottom: 7px; color: var(--noc-navy); font-weight: 800; }

.noc-woningcheck__navbuttons,
.noc-woningcheck__summary-actions {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 24px;
}
.noc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 11px 17px;
  border-radius: 12px;
  text-decoration: none !important;
  border: 1px solid transparent;
  cursor: pointer;
  font-weight: 850;
}
.noc-btn--primary { background: var(--noc-navy); color: #fff !important; border-color: var(--noc-navy); }
.noc-btn--primary:hover { background: #0A315F; }
.noc-btn--secondary { background: #fff; color: var(--noc-navy) !important; border-color: var(--noc-line); }
.noc-btn--secondary:hover { border-color: var(--noc-blue); }
.noc-btn[disabled] { opacity: .45; cursor: not-allowed; }

.noc-woningcheck__summary-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 22px;
}
.noc-woningcheck__stat {
  padding: 15px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--noc-line);
  text-align: center;
}
.noc-woningcheck__stat strong { display: block; color: var(--noc-navy); font-size: 26px; }
.noc-woningcheck__stat span { color: var(--noc-muted); font-size: 12px; }

.noc-woningcheck__summary-group {
  margin: 16px 0;
  padding: 18px;
  border: 1px solid var(--noc-line);
  border-radius: 16px;
  background: #fff;
}
.noc-woningcheck__summary-group h4 { margin: 0 0 10px; color: var(--noc-navy); }
.noc-woningcheck__summary-list { margin: 0; padding-left: 20px; }
.noc-woningcheck__summary-list li { margin: 7px 0; }
.noc-woningcheck__summary-list small { display: block; color: var(--noc-muted); margin-top: 2px; }
.noc-woningcheck__empty { margin: 0; color: var(--noc-muted); }
.noc-woningcheck__section-notes-summary { white-space: pre-wrap; color: var(--noc-muted); }

.noc-woningcheck__sources {
  background: var(--noc-powder);
  border-top: 1px solid var(--noc-line);
}
.noc-woningcheck__sources h3 { margin: 0 0 16px; color: var(--noc-navy); }
.noc-woningcheck__source-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.noc-woningcheck__source-grid a {
  display: block;
  padding: 16px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--noc-line);
  color: var(--noc-text) !important;
  text-decoration: none !important;
}
.noc-woningcheck__source-grid a:hover { border-color: var(--noc-blue); }
.noc-woningcheck__source-grid strong { display: block; color: var(--noc-navy); margin-bottom: 5px; }
.noc-woningcheck__source-grid span { font-size: 13px; color: var(--noc-muted); }
.noc-woningcheck__disclaimer { margin: 16px 0 0; font-size: 13px; color: var(--noc-muted); }

.noc-woningcheck__footer {
  display: flex;
  gap: 20px;
  justify-content: space-between;
  align-items: center;
  background: #fffdf9;
  border-top: 1px solid var(--noc-line);
}
.noc-woningcheck__footer strong { color: var(--noc-navy); font-size: 18px; }
.noc-woningcheck__footer p { margin: 5px 0 0; color: var(--noc-muted); max-width: 690px; }
.noc-woningcheck__footer .noc-btn { flex: 0 0 auto; }

.noc-woningcheck__savebar {
  padding: 12px clamp(22px, 4vw, 42px);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  background: #F8F4EC;
  border-top: 1px solid #DED5C8;
  color: #6A665F;
  font-size: 12px;
}
.noc-woningcheck__savebar button { border: 0; padding: 0; background: transparent; color: var(--noc-blue); font-weight: 800; cursor: pointer; }

@media (max-width: 780px) {
  .noc-woningcheck__shell { border-radius: 20px; }
  .noc-woningcheck__hero::after { display: none; }
  .noc-woningcheck__setup-grid { grid-template-columns: 1fr; }
  .noc-woningcheck__progress { overflow-x: auto; grid-template-columns: repeat(5, minmax(112px, 1fr)); }
  .noc-woningcheck__status { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .noc-woningcheck__summary-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .noc-woningcheck__source-grid { grid-template-columns: 1fr; }
  .noc-woningcheck__footer { flex-direction: column; align-items: stretch; }
  .noc-woningcheck__footer .noc-btn { width: 100%; }
}

@media (max-width: 480px) {
  .noc-woningcheck__hero,
  .noc-woningcheck__setup,
  .noc-woningcheck__main,
  .noc-woningcheck__sources,
  .noc-woningcheck__footer { padding: 22px 16px; }
  .noc-woningcheck__counter,
  .noc-woningcheck__savebar { padding-left: 16px; padding-right: 16px; }
  .noc-woningcheck__section-head { gap: 10px; }
  .noc-woningcheck__item-head { display: block; }
  .noc-woningcheck__tag { display: inline-block; margin-top: 8px; }
  .noc-woningcheck__navbuttons,
  .noc-woningcheck__summary-actions { flex-direction: column; }
  .noc-woningcheck__navbuttons .noc-btn,
  .noc-woningcheck__summary-actions .noc-btn { width: 100%; }
  .noc-woningcheck__savebar { align-items: flex-start; }
}

@media print {
  .noc-woningcheck__setup,
  .noc-woningcheck__progress,
  .noc-woningcheck__counter,
  .noc-woningcheck__navbuttons,
  .noc-woningcheck__sources,
  .noc-woningcheck__footer,
  .noc-woningcheck__savebar,
  .noc-woningcheck__summary-actions { display: none !important; }
  .noc-woningcheck__shell { box-shadow: none; border: 0; }
  .noc-woningcheck__hero { background: #fff !important; color: #000 !important; padding: 0 0 20px !important; }
  .noc-woningcheck__hero h2,
  .noc-woningcheck__hero p,
  .noc-woningcheck__eyebrow { color: #000 !important; }
  .noc-woningcheck__notice { color: #000 !important; border: 1px solid #bbb; background: #fff; }
  .noc-woningcheck__notice span { color: #000 !important; }
  .noc-woningcheck__main { padding: 0; background: #fff; }
  .noc-woningcheck__panel { display: none !important; }
  .noc-woningcheck__panel[data-panel="summary"] { display: block !important; }
}
