
.methodology-app {
  --methodology-wine: #7b2035;
  --methodology-wine-dark: #571526;
  --methodology-ink: #20252d;
  --methodology-muted: #68717e;
  --methodology-line: #dfe3e8;
  --methodology-surface: #fff;
  color: var(--methodology-ink);
  background: #f5f7f9;
  border: 1px solid #e3e6ea;
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(28, 33, 40, .08);
  overflow: hidden;
}

.methodology-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 30px 22px;
  color: #fff;
  background: linear-gradient(120deg, #4c1422 0%, #7b2035 68%, #932f46 100%);
}

.methodology-kicker { display: block; margin-bottom: 7px; color: #e8bdc7; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.methodology-hero h2 { margin: 0; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 2.5vw, 2.35rem); font-weight: 600; }
.methodology-hero p { max-width: 690px; margin: 8px 0 0; color: #f1dce1; font-size: .91rem; }
.methodology-state { display: grid; justify-items: end; gap: 7px; min-width: 180px; }
.methodology-badge { padding: 7px 11px; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; background: rgba(255,255,255,.12); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.methodology-badge[data-status="finalizado"] { background: #fff; color: var(--methodology-wine); }
.methodology-sync { min-height: 1em; color: #f4dde3; font-size: .76rem; text-align: right; }
.methodology-sync[data-type="error"] { color: #ffd5d5; font-weight: 700; }
.methodology-sync[data-type="success"] { color: #d4f4df; }
.methodology-sync[data-type="warning"] { color: #ffe0a6; }

.methodology-status-row {
  display: flex;
  justify-content: flex-end;
  padding: 7px 20px 0;
  background: #f3f5f7;
}
.methodology-status-row:has(.methodology-badge[data-status="novo"]):has(.methodology-sync:empty) { display: none; }
.methodology-status-row .methodology-state { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 7px 10px; min-width: 0; }
.methodology-status-row .methodology-badge { color: var(--methodology-wine); border-color: #dfc8cf; background: #f6ecef; }
.methodology-status-row .methodology-badge[data-status="novo"] { display: none; }
.methodology-status-row .methodology-sync { min-height: 0; color: var(--methodology-muted); text-align: right; }
.methodology-status-row .methodology-sync[data-type="error"] { color: #9c2d43; }
.methodology-status-row .methodology-sync[data-type="success"] { color: #347054; }
.methodology-status-row .methodology-sync[data-type="warning"] { color: #94611c; }

.methodology-context, .methodology-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 20px 24px; background: #eef1f4; border-bottom: 1px solid var(--methodology-line); }
.methodology-app label { display: grid; gap: 6px; color: #505864; font-size: .75rem; font-weight: 750; letter-spacing: .02em; }
.methodology-app input, .methodology-app select, .methodology-app textarea { width: 100%; min-width: 0; border: 1px solid #cfd5dc; border-radius: 8px; background: #fff; color: var(--methodology-ink); font: inherit; }
.methodology-app input, .methodology-app select { height: 38px; padding: 0 10px; }
.methodology-app textarea { padding: 11px 12px; resize: vertical; }
.methodology-app input:focus, .methodology-app select:focus, .methodology-app textarea:focus { outline: 3px solid rgba(123,32,53,.13); border-color: var(--methodology-wine); }
.methodology-app :disabled { cursor: not-allowed; opacity: .62; }

.methodology-autocomplete { position: relative; min-width: 0; }
.methodology-autocomplete-value { display: none !important; }
.methodology-autocomplete[data-allow-empty="true"] > [data-methodology-autocomplete-input][aria-invalid="false"]:not(:focus) {
  border-color: #cfd5dc !important;
  box-shadow: none !important;
}
.methodology-autocomplete-list {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  left: 0;
  width: 100%;
  max-height: 230px;
  padding: 5px;
  overflow-y: auto;
  border: 1px solid #d5dae0;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(31, 38, 46, .16);
}
.methodology-autocomplete-list[hidden] { display: none; }
.methodology-autocomplete-list button {
  display: block;
  width: 100%;
  min-height: 36px;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  color: #303741;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.methodology-autocomplete-list button:hover,
.methodology-autocomplete-list button.is-active,
.methodology-autocomplete-list button[aria-selected="true"] { color: var(--methodology-wine); background: #f7ecef; }
.methodology-autocomplete-list .methodology-autocomplete-new { border-top: 1px solid #edf0f2; border-radius: 0 0 6px 6px; color: var(--methodology-wine); font-weight: 750; }
.methodology-autocomplete-empty { display: block; padding: 9px; color: var(--methodology-muted); font-size: .76rem; }
.methodology-autocomplete-message { display: block; margin-top: 5px; color: #8b273c; font-size: .68rem; font-weight: 650; line-height: 1.3; }
.methodology-autocomplete-message[hidden] { display: none; }

.methodology-section { margin: 18px 24px; border: 1px solid var(--methodology-line); border-radius: 15px; background: var(--methodology-surface); overflow: hidden; }
.methodology-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 12px 16px; border-bottom: 1px solid var(--methodology-line); background: #fafbfc; }
.methodology-section-head > div:first-child { display: flex; align-items: center; gap: 10px; }
.methodology-section-head h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.06rem; }
.methodology-section-head p { margin: 0; color: var(--methodology-muted); font-size: .78rem; }
.methodology-step { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 8px; color: #fff; background: var(--methodology-wine); font-size: .69rem; font-weight: 850; }

.methodology-periods { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 1px; background: var(--methodology-line); }
.methodology-period { display: grid; align-content: start; gap: 10px; min-width: 0; padding: 13px; background: #fff; border-top: 3px solid #aeb5be; }
.methodology-period.realizado { border-color: #3d7b5a; }
.methodology-period.nao_realizado { border-color: var(--methodology-wine); background: #fdfafb; }
.methodology-period-title { display: flex; align-items: center; color: #303741; }
.methodology-period-title span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: var(--methodology-wine); background: #f1e5e8; font-weight: 850; }
.methodology-period label { font-size: .68rem; }
.methodology-period input, .methodology-period select { height: 34px; font-size: .75rem; }
.methodology-justification { display: none !important; }
.methodology-justification.is-visible { display: grid !important; }

.methodology-legend { display: flex !important; flex-wrap: wrap; justify-content: flex-end; gap: 5px 12px !important; color: var(--methodology-muted); font-size: .7rem; }
.methodology-legend span { white-space: nowrap; }
.methodology-legend b { color: var(--methodology-wine); }
.methodology-table-wrap { max-height: 64vh; overflow: auto; }
.methodology-table { width: 100%; min-width: 1080px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: .76rem; }
.methodology-table th, .methodology-table td { height: 38px; padding: 5px; border-right: 1px solid #e6e9ed; border-bottom: 1px solid #e6e9ed; text-align: center; }
.methodology-table thead th { position: sticky; top: 0; z-index: 4; color: #fff; background: var(--methodology-wine-dark); font-size: .7rem; }
.methodology-table thead tr:nth-child(2) th { top: 38px; background: var(--methodology-wine); }
.methodology-table .methodology-code-col { position: sticky; left: 0; z-index: 3; width: 62px; color: var(--methodology-wine); background: #f8f9fa; font-weight: 850; }
.methodology-table .methodology-criterion-col { position: sticky; left: 62px; z-index: 3; width: 255px; background: #fff; text-align: left; font-weight: 650; }
.methodology-table thead .methodology-code-col, .methodology-table thead .methodology-criterion-col { z-index: 6; color: #fff; background: var(--methodology-wine-dark); text-align: center; }
.methodology-table .methodology-group th { position: sticky; left: 0; z-index: 2; height: 31px; padding-left: 14px; color: #5b1c2b; background: #f2e8eb; font-size: .68rem; letter-spacing: .1em; text-align: left; }
.methodology-score { width: 42px !important; height: 29px !important; padding: 0 4px !important; border-radius: 6px !important; font-weight: 800 !important; text-align: center; }
.methodology-score:not(.score-empty) { color: var(--methodology-wine); border-color: #b9808d; background: #fbf3f5; }

.methodology-footer { padding-bottom: 16px; }
.methodology-observations { margin: 16px 16px 0; }
.methodology-footer-grid { grid-template-columns: 1.4fr .8fr 1fr; padding: 14px 16px; background: #fff; border: 0; }
.methodology-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 0 16px; }
.methodology-button { min-height: 40px; padding: 0 17px; border: 1px solid var(--methodology-wine); border-radius: 9px; font-weight: 800; cursor: pointer; }
.methodology-button--secondary { color: var(--methodology-wine); background: #fff; }
.methodology-button--primary { color: #fff; background: var(--methodology-wine); box-shadow: 0 8px 18px rgba(123,32,53,.2); }
.methodology-button:hover:not(:disabled) { transform: translateY(-1px); }

@media (max-width: 1180px) {
  .methodology-periods { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .methodology-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .methodology-app { border-radius: 14px; }
  .methodology-hero { align-items: flex-start; padding: 21px 18px; }
  .methodology-state { min-width: 0; }
  .methodology-context { grid-template-columns: 1fr 1fr; padding: 16px; }
  .methodology-section { margin: 14px 12px; }
  .methodology-section-head, .methodology-section-head--criteria { align-items: flex-start; flex-direction: column; }
  .methodology-legend { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .methodology-hero { display: grid; }
  .methodology-state { justify-items: start; }
  .methodology-sync { text-align: left; }
  .methodology-context, .methodology-periods, .methodology-footer-grid { grid-template-columns: 1fr; }
  .methodology-actions { display: grid; }
}

/* Focused weekly layout: the persisted model remains monthly, while the UI shows one week. */
.methodology-hero {
  align-items: center;
  padding: 18px 26px 16px;
  background: linear-gradient(112deg, #511623 0%, #762035 72%, #852a40 100%);
}

.methodology-kicker { margin-bottom: 4px; font-size: .65rem; }
.methodology-hero h2 { font-size: clamp(1.45rem, 2vw, 1.9rem); }
.methodology-hero p { margin-top: 4px; font-size: .82rem; }
.methodology-state { gap: 4px; }
.methodology-badge { padding: 5px 9px; font-size: .67rem; }
.methodology-sync { font-size: .7rem; }

.methodology-context {
  grid-template-columns: 1.15fr 1fr 1.25fr .8fr;
  gap: 11px;
  padding: 13px 20px;
  background: #f3f5f7;
}

.methodology-context label { gap: 4px; font-size: .69rem; }
.methodology-context input, .methodology-context select { height: 34px; }

.methodology-week-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  padding: 13px 20px 0;
}

.methodology-week-tab {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 45px;
  padding: 7px 11px;
  border: 1px solid #d9dee4;
  border-radius: 10px;
  color: #454d58;
  background: #fff;
  font: inherit;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.methodology-week-tab:hover { border-color: #c0a0a8; background: #fdfafb; }
.methodology-week-tab.is-active { border-color: var(--methodology-wine); background: #fbf5f7; box-shadow: inset 0 -2px 0 var(--methodology-wine); }
.methodology-week-tab > span { font-size: .79rem; font-weight: 800; }
.methodology-week-tab small { display: inline-flex; align-items: center; gap: 5px; color: #7a828d; font-size: .61rem; white-space: nowrap; }
.methodology-week-tab small::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #a8afb7; }
.methodology-week-tab small.progress::before { background: #b67a25; }
.methodology-week-tab small.complete { color: #347054; }
.methodology-week-tab small.complete::before { background: #3d8661; }

.methodology-section { margin: 12px 20px; border-color: #e1e5e9; box-shadow: 0 4px 16px rgba(35, 42, 50, .025); }
.methodology-section-head { min-height: 49px; padding: 9px 14px; }
.methodology-section-head h3 { font-size: .98rem; }
.methodology-step { width: 25px; height: 25px; font-size: .62rem; }

.methodology-periods { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 11px; background: #f6f7f9; }
.methodology-period {
  grid-template-columns: 1.05fr .9fr 1.2fr;
  gap: 9px 11px;
  padding: 11px 13px 12px;
  border: 1px solid #e0e4e8;
  border-top: 2px solid #aeb5be;
  border-radius: 10px;
}
.methodology-period-title { grid-column: 1 / -1; padding-bottom: 3px; border-bottom: 1px solid #edf0f2; }
.methodology-period-title strong { font-size: .79rem; }
.methodology-period-title span { width: 23px; height: 23px; font-size: .7rem; }
.methodology-period label { gap: 4px; }
.methodology-period input, .methodology-period select { height: 32px; }
.methodology-justification.is-visible { grid-column: 1 / -1; }

.methodology-section-head--criteria { flex-wrap: wrap; }
.methodology-legend { gap: 3px 7px !important; font-size: .65rem; }
.methodology-legend span:not(:last-child)::after { content: " \00b7"; margin-left: 7px; color: #a7adb5; }
.methodology-table-wrap { max-height: none; overflow-x: auto; overflow-y: visible; }
.methodology-table { min-width: 620px; table-layout: fixed; font-size: .75rem; }
.methodology-table th, .methodology-table td { height: 34px; padding: 3px 7px; border-right: 0; border-bottom-color: #edf0f2; }
.methodology-table tbody tr:not(.methodology-group):hover th,
.methodology-table tbody tr:not(.methodology-group):hover td { background: #fafbfc; }
.methodology-table thead th { position: static; height: 34px; background: #62192b; font-size: .67rem; }
.methodology-table .methodology-code-col { position: static; width: 62px; color: #7a5360; background: #fafbfc; font-size: .67rem; }
.methodology-table .methodology-criterion-col { position: static; width: auto; background: #fff; font-size: .78rem; }
.methodology-table thead .methodology-code-col,
.methodology-table thead .methodology-criterion-col { position: static; color: #fff; background: #62192b; }
.methodology-table thead th:nth-child(3), .methodology-table thead th:nth-child(4),
.methodology-table tbody td:nth-child(3), .methodology-table tbody td:nth-child(4) { width: 88px; }
.methodology-table .methodology-group th { position: static; height: 27px; padding-left: 12px; color: #672236; background: #f4ecef; font-size: .62rem; }
.methodology-score { width: 62px !important; min-height: 30px !important; height: 30px !important; border-color: #ccd2d8 !important; font-size: .78rem !important; cursor: pointer; }
.methodology-mobile-score-label { display: none; }

.methodology-footer { padding-bottom: 0; }
.methodology-footer-summary { list-style: none; cursor: pointer; user-select: none; }
.methodology-footer-summary::-webkit-details-marker { display: none; }
.methodology-footer-summary::after { content: "+"; display: grid; place-items: center; width: 25px; height: 25px; margin-left: auto; border-radius: 50%; color: var(--methodology-wine); background: #f1e6e9; font-size: 1rem; font-weight: 700; }
.methodology-footer[open] .methodology-footer-summary::after { content: "\2212"; }
.methodology-footer-hint { margin-left: auto; color: var(--methodology-muted); font-size: .7rem; font-weight: 500; }
.methodology-footer-content { padding-bottom: 14px; border-top: 1px solid var(--methodology-line); }
.methodology-observations { margin-top: 13px; }
.methodology-footer-grid { padding-top: 11px; padding-bottom: 11px; }

@media (max-width: 900px) {
  .methodology-week-tab { justify-content: center; flex-direction: column; gap: 2px; }
  .methodology-period { grid-template-columns: 1fr 1fr; }
  .methodology-period label:nth-of-type(3) { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .methodology-hero { padding: 15px 17px; }
  .methodology-context { grid-template-columns: 1fr 1fr; padding: 12px 14px; }
  .methodology-week-tabs { gap: 5px; padding: 11px 12px 0; overflow-x: auto; }
  .methodology-week-tab { min-width: 105px; }
  .methodology-section { margin: 11px 12px; }
  .methodology-periods { grid-template-columns: 1fr; }
  .methodology-footer-hint { display: none; }
}

@media (max-width: 520px) {
  .methodology-week-tabs { display: flex; }
  .methodology-period { grid-template-columns: 1fr; }
  .methodology-period label:nth-of-type(3) { grid-column: auto; }
}

@media (max-width: 600px) {
  #tab-supervisao:has(#supervisorV2MethodologyPanel.is-active),
  #tab-supervisao:has(#supervisorV2MethodologyPanel.is-active) .supervisor-v2-shell,
  #tab-supervisao:has(#supervisorV2MethodologyPanel.is-active) .supervisor-v2-tabs,
  #supervisorV2MethodologyPanel.is-active {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  #tab-supervisao:has(#supervisorV2MethodologyPanel.is-active) .supervisor-v2-shell {
    gap: 8px;
    padding: 6px;
  }

  #supervisorV2MethodologyPanel.is-active {
    width: calc(100% + 16px);
    max-width: none;
    margin-inline: -8px;
  }

  .methodology-app {
    width: 100%;
    max-width: 100%;
    border-inline: 0;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(28, 33, 40, .06);
  }

  .methodology-hero {
    display: grid;
    gap: 10px;
    padding: 14px max(14px, env(safe-area-inset-right)) 13px max(14px, env(safe-area-inset-left));
  }

  .methodology-kicker { margin-bottom: 3px; font-size: .7rem; }
  .methodology-hero h2 {
    max-width: 100%;
    font-size: clamp(1.35rem, 6.1vw, 1.65rem);
    line-height: 1.08;
    overflow-wrap: anywhere;
  }
  .methodology-hero p { max-width: 100%; margin-top: 5px; font-size: .82rem; line-height: 1.35; }
  .methodology-state { justify-items: start; min-width: 0; gap: 5px; }
  .methodology-badge { padding: 6px 9px; font-size: .7rem; }
  .methodology-sync { max-width: 100%; min-height: 0; font-size: .8rem; line-height: 1.3; text-align: left; overflow-wrap: anywhere; }

  .methodology-context {
    grid-template-columns: 1fr;
    gap: 11px;
    padding: 13px max(12px, env(safe-area-inset-right)) 14px max(12px, env(safe-area-inset-left));
  }
  .methodology-context label,
  .methodology-app label { gap: 6px; font-size: .86rem; }
  .methodology-context input,
  .methodology-context select,
  .methodology-app input,
  .methodology-app select { min-height: 46px; height: 46px; padding-inline: 12px; font-size: 1rem; }

  .methodology-week-tabs {
    display: flex;
    width: 100%;
    gap: 7px;
    padding: 11px max(10px, env(safe-area-inset-right)) 2px max(10px, env(safe-area-inset-left));
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  .methodology-week-tab {
    flex: 0 0 132px;
    min-width: 132px;
    min-height: 53px;
    justify-content: center;
    align-items: flex-start;
    padding: 8px 11px;
    scroll-snap-align: start;
  }
  .methodology-week-tab > span { font-size: .9rem; }
  .methodology-week-tab small { font-size: .76rem; }

  .methodology-section { margin: 10px 6px; border-radius: 12px; }
  .methodology-section-head,
  .methodology-section-head--criteria {
    min-height: 48px;
    gap: 8px;
    padding: 10px 11px;
  }
  .methodology-section-head h3 { font-size: 1.02rem; line-height: 1.2; }
  .methodology-section-head p { font-size: .81rem; line-height: 1.3; }
  .methodology-step { flex: 0 0 auto; width: 27px; height: 27px; font-size: .7rem; }

  .methodology-periods { grid-template-columns: 1fr; gap: 9px; padding: 9px; }
  .methodology-period {
    grid-template-columns: 1fr;
    gap: 11px;
    width: 100%;
    padding: 12px;
    border-radius: 10px;
  }
  .methodology-period label:nth-of-type(3) { grid-column: auto; }
  .methodology-period-title { padding-bottom: 7px; }
  .methodology-period-title strong { font-size: .94rem; }
  .methodology-period-title span { width: 28px; height: 28px; font-size: .82rem; }
  .methodology-period label { font-size: .86rem; }
  .methodology-period input,
  .methodology-period select { min-height: 46px; height: 46px; font-size: 1rem; }
  .methodology-justification.is-visible { grid-column: auto; }

  .methodology-section-head--criteria { display: grid; }
  .methodology-legend {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, max-content));
    justify-content: start;
    gap: 5px 16px !important;
    width: 100%;
    padding-left: 37px;
    font-size: .82rem;
    line-height: 1.25;
  }
  .methodology-legend span { white-space: normal; }
  .methodology-legend span:not(:last-child)::after { content: none; }

  .methodology-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }
  .methodology-table,
  .methodology-table tbody { display: block; width: 100%; min-width: 0; }
  .methodology-table thead { display: none; }
  .methodology-table tbody tr.methodology-group { display: block; width: 100%; }
  .methodology-table .methodology-group th {
    display: block;
    width: 100%;
    height: auto;
    padding: 9px 12px;
    border: 0;
    font-size: .76rem;
    line-height: 1.2;
  }
  .methodology-table tbody tr:not(.methodology-group) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px 12px;
    margin: 8px;
    padding: 12px;
    border: 1px solid #e3e7eb;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(31, 38, 46, .035);
  }
  .methodology-table tbody tr:not(.methodology-group):hover th,
  .methodology-table tbody tr:not(.methodology-group):hover td { background: transparent; }
  .methodology-table tbody tr:not(.methodology-group) > .methodology-code-col,
  .methodology-table tbody tr:not(.methodology-group) > .methodology-criterion-col {
    display: block;
    grid-column: 1 / -1;
    width: 100%;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
  }
  .methodology-table tbody tr:not(.methodology-group) > .methodology-code-col {
    color: #8a6570;
    font-size: .78rem;
    line-height: 1;
    letter-spacing: .08em;
  }
  .methodology-table tbody tr:not(.methodology-group) > .methodology-criterion-col {
    margin-top: -4px;
    color: #252b33;
    font-size: .98rem;
    line-height: 1.3;
    font-weight: 750;
  }
  .methodology-evaluation-cell,
  .methodology-table tbody td:nth-child(3),
  .methodology-table tbody td:nth-child(4) {
    display: grid;
    gap: 6px;
    width: 100%;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
  }
  .methodology-mobile-score-label { display: block; color: #5d6570; font-size: .84rem; font-weight: 750; }
  .methodology-score {
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    padding-inline: 12px !important;
    border-radius: 9px !important;
    font-size: 1rem !important;
    text-align: left;
  }

  .methodology-footer-summary { display: flex; align-items: center; flex-direction: row; }
  .methodology-footer-summary > div:first-child { min-width: 0; }
  .methodology-footer-summary h3 { overflow-wrap: anywhere; }
  .methodology-footer-summary::after { flex: 0 0 29px; width: 29px; height: 29px; }
  .methodology-footer-content { padding-bottom: 12px; }
  .methodology-observations { margin: 12px 11px 0; }
  .methodology-observations textarea { min-height: 112px; font-size: 1rem; }
  .methodology-footer-grid { grid-template-columns: 1fr; gap: 11px; padding: 12px 11px; }
  .methodology-actions { display: grid; gap: 9px; padding: 0 11px; }
  .methodology-button { width: 100%; min-height: 50px; font-size: .94rem; }
  .methodology-button--primary { min-height: 54px; }
}

@media (min-width: 901px) {
  .methodology-section:has(#metodologiaPeriods) .methodology-section-head {
    min-height: 44px;
    padding-block: 7px;
  }
  .methodology-periods { padding: 6px 9px; }
  .methodology-period {
    grid-template-columns: 1fr .9fr 1.15fr;
    gap: 5px 9px;
    padding: 6px 10px 7px;
  }
  .methodology-period-title { padding-bottom: 0; }
  .methodology-period input,
  .methodology-period select {
    min-height: 34px !important;
    height: 34px !important;
    font-size: .76rem;
  }

  .methodology-table { min-width: 840px; table-layout: fixed; }
  .methodology-table .methodology-code-col { width: 54px; }
  .methodology-table .methodology-criterion-col { width: 240px; }
  .methodology-table .methodology-evaluation-cell,
  .methodology-table thead th:not(.methodology-code-col):not(.methodology-criterion-col) { width: auto; }
  .methodology-table th,
  .methodology-table td { padding-inline: 2px; }
  .methodology-table tbody .methodology-criterion-col { padding-inline: 10px; }
  .methodology-score {
    width: 48px !important;
    min-height: 32px !important;
    height: 32px !important;
    border-color: #c3cad2 !important;
  }
  .methodology-score:not(.score-empty) {
    color: #65172b;
    border-color: #9f5265 !important;
    background: #f8e9ed;
    box-shadow: inset 0 0 0 1px rgba(123, 32, 53, .1), 0 2px 5px rgba(85, 20, 38, .09);
  }
  .methodology-legend { font-size: .7rem; }

  .methodology-table thead th {
    color: #fff;
    border-right: 1px solid rgba(255,255,255,.13);
    background: #681a2d;
  }
  .methodology-table .methodology-week-heading {
    height: 31px;
    color: #f7e9ed;
    background: #571526;
    font-size: .67rem;
    letter-spacing: .055em;
    text-transform: uppercase;
  }
  .methodology-table .methodology-period-heading {
    height: 29px;
    background: #732037;
  }
  .methodology-period-heading button {
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
    font: inherit;
    font-weight: 850;
    cursor: pointer;
  }
  .methodology-table .methodology-date-heading {
    position: relative;
    height: 27px;
    padding: 2px;
    color: #f4e5e9;
    background: #7d2940;
  }
  .methodology-header-date-button {
    width: 100%;
    min-height: 23px;
    padding: 2px 3px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 5px;
    color: #fff;
    background: rgba(255,255,255,.08);
    font: inherit;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .02em;
    cursor: pointer;
  }
  .methodology-header-date-button:hover:not(:disabled),
  .methodology-header-date-button:focus-visible { border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.18); outline: none; }
  .methodology-header-date-button:disabled { cursor: not-allowed; opacity: .58; }
  .methodology-header-date-input {
    position: absolute;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    pointer-events: none;
  }
  .methodology-table .methodology-period-heading:hover { background: #8c3149; }
  .methodology-table tbody tr:not(.methodology-group) { height: 33px; }
}

/* Fluxo simples: uma visita por avaliacao visivel. O modelo mensal legado permanece interno. */
.methodology-start-state,
.methodology-history,
.methodology-visit-form {
  margin: 14px 20px;
  border: 1px solid #e1e6eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(31, 39, 48, .035);
}

.methodology-start-state {
  padding: 30px 20px;
  color: var(--methodology-muted);
  text-align: center;
}

.methodology-start-state[hidden],
.methodology-history[hidden],
.methodology-visit-form[hidden] { display: none !important; }

.methodology-history { padding: 16px; }
.methodology-history-head,
.methodology-visit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.methodology-history-head h3,
.methodology-visit-head h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; }
.methodology-history-head span { display: block; margin-top: 3px; color: var(--methodology-muted); font-size: .75rem; }
.methodology-history-list { display: grid; gap: 8px; margin-top: 14px; }
.methodology-history-item {
  display: grid;
  grid-template-columns: .85fr 1.35fr 1.15fr auto;
  align-items: center;
  gap: 14px;
  padding: 11px 12px;
  border: 1px solid #e5e9ed;
  border-radius: 10px;
  background: #fcfcfd;
}
.methodology-history-item > div { min-width: 0; }
.methodology-history-item span { display: block; color: var(--methodology-muted); font-size: .68rem; }
.methodology-history-item strong { display: block; margin-top: 2px; color: #28303a; font-size: .78rem; overflow-wrap: anywhere; }
.methodology-history-empty { margin: 0; padding: 22px 12px; color: var(--methodology-muted); text-align: center; }
.methodology-plain-button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #d6dce2;
  border-radius: 8px;
  color: var(--methodology-wine);
  background: #fff;
  font: inherit;
  font-size: .76rem;
  font-weight: 800;
  cursor: pointer;
}

.methodology-visit-form { padding: 17px; }
.methodology-kicker-dark { display: block; margin-bottom: 3px; color: var(--methodology-wine); font-size: .62rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.methodology-visit-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 16px; }
.methodology-progress { display: grid; gap: 8px; margin-top: 16px; padding: 12px 14px; border-radius: 10px; background: #f6f7f9; }
.methodology-progress > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.methodology-progress strong { color: #303741; font-size: .8rem; }
.methodology-progress span { color: var(--methodology-muted); font-size: .7rem; }
.methodology-progress-track { height: 4px; overflow: hidden; border-radius: 999px; background: #e2e6ea; }
.methodology-progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--methodology-wine); transition: width .18s ease; }
.methodology-scale { display: flex; flex-wrap: wrap; gap: 5px 13px; padding: 13px 2px 8px; color: var(--methodology-muted); font-size: .68rem; }
.methodology-scale b { color: var(--methodology-wine); }
.methodology-criteria-list { display: grid; gap: 6px; }
.methodology-criteria-list h4 { margin: 10px 0 2px; color: #6b2638; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.methodology-criterion-card {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 50px;
  padding: 7px 10px;
  border: 1px solid #e7eaee;
  border-radius: 9px;
  background: #fff;
}
.methodology-criterion-card > div:first-child { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 9px; }
.methodology-criterion-card > div:first-child span { color: var(--methodology-wine); font-size: .7rem; font-weight: 850; }
.methodology-criterion-card > div:first-child strong { color: #303741; font-size: .78rem; }
.methodology-score-buttons { display: grid; grid-template-columns: repeat(5, 38px); gap: 5px; }
.methodology-score-buttons button {
  width: 38px;
  height: 36px;
  padding: 0;
  border: 1px solid #ccd3da;
  border-radius: 8px;
  color: #424b56;
  background: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.methodology-score-buttons button:hover:not(:disabled) { border-color: #a96b7a; background: #fbf5f7; }
.methodology-score-buttons button.is-selected { box-shadow: 0 3px 8px rgba(34, 43, 54, .14); }
.methodology-score-buttons button.is-selected[data-methodology-score="1"] { color: var(--methodology-score-1); border-color: var(--methodology-score-1); background: var(--methodology-score-1-surface); }
.methodology-score-buttons button.is-selected[data-methodology-score="2"] { color: var(--methodology-score-2); border-color: var(--methodology-score-2); background: var(--methodology-score-2-surface); }
.methodology-score-buttons button.is-selected[data-methodology-score="3"] { color: var(--methodology-score-3); border-color: var(--methodology-score-3); background: var(--methodology-score-3-surface); }
.methodology-score-buttons button.is-selected[data-methodology-score="4"] { color: var(--methodology-score-4); border-color: var(--methodology-score-4); background: var(--methodology-score-4-surface); }
.methodology-score-buttons button.is-selected[data-methodology-score="5"] { color: var(--methodology-score-5); border-color: var(--methodology-score-5); background: var(--methodology-score-5-surface); }
.methodology-scale [data-methodology-score="1"] { color: var(--methodology-score-1); }
.methodology-scale [data-methodology-score="2"] { color: var(--methodology-score-2); }
.methodology-scale [data-methodology-score="3"] { color: var(--methodology-score-3); }
.methodology-scale [data-methodology-score="4"] { color: var(--methodology-score-4); }
.methodology-scale [data-methodology-score="5"] { color: var(--methodology-score-5); }
.methodology-scale [data-methodology-score] b { color: inherit; }
.methodology-final-meta {
  display: grid;
  grid-template-columns: minmax(190px, 1.4fr) repeat(2, minmax(130px, .8fr));
  gap: 12px 22px;
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid #e7eaee;
}
.methodology-final-meta > div { display: grid; align-content: start; gap: 3px; min-width: 0; }
.methodology-final-meta > div[hidden],
.methodology-final-meta small[hidden] { display: none !important; }
.methodology-final-meta span { color: var(--methodology-muted); font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.methodology-final-meta strong { color: #28303a; font-size: .82rem; overflow-wrap: anywhere; }
.methodology-final-meta small { color: var(--methodology-muted); font-size: .72rem; }
.methodology-visit-notes { margin-top: 15px; }
.methodology-visit-notes textarea { min-height: 90px; }
.methodology-visit-form .methodology-actions { padding: 14px 0 0; }
.methodology-toast {
  position: fixed;
  z-index: 1200;
  top: 76px;
  right: 22px;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: min(380px, calc(100vw - 28px));
  padding: 12px 15px;
  border: 1px solid #b9dcc8;
  border-radius: 11px;
  color: #245f3f;
  background: #f1faf5;
  box-shadow: 0 10px 26px rgba(31, 74, 50, .14);
  font-size: .82rem;
  font-weight: 800;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease;
}
.methodology-toast[hidden] { display: none !important; }
.methodology-toast.is-visible { opacity: 1; transform: translateY(0); }
.methodology-toast[data-type="error"] { border-color: #e5bec6; color: #7b2035; background: #fff5f7; box-shadow: 0 10px 26px rgba(123, 32, 53, .12); }
.methodology-toast__icon { display: grid; flex: 0 0 25px; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #fff; background: #3f8a60; font-size: .88rem; }
.methodology-toast[data-type="error"] .methodology-toast__icon { background: #9c354d; }

@media (max-width: 767px) {
  .methodology-start-state,
  .methodology-history,
  .methodology-visit-form { margin: 10px 8px; border-radius: 12px; }
  .methodology-history,
  .methodology-visit-form { padding: 12px; }
  .methodology-history-head,
  .methodology-visit-head { align-items: stretch; flex-direction: column; gap: 10px; }
  .methodology-history-head .methodology-button,
  .methodology-visit-head .methodology-plain-button { width: 100%; }
  .methodology-history-item { grid-template-columns: 1fr; gap: 8px; }
  .methodology-history-item .methodology-plain-button { width: 100%; min-height: 44px; }
  .methodology-visit-fields { grid-template-columns: 1fr; }
  .methodology-progress > div:first-child { align-items: flex-start; flex-direction: column; gap: 2px; }
  .methodology-scale { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; }
  .methodology-criterion-card { grid-template-columns: 1fr; gap: 10px; padding: 11px; }
  .methodology-criterion-card > div:first-child { grid-template-columns: 38px minmax(0, 1fr); }
  .methodology-criterion-card > div:first-child strong { font-size: .9rem; line-height: 1.25; }
  .methodology-score-buttons { grid-template-columns: repeat(5, minmax(44px, 1fr)); width: 100%; gap: 6px; }
  .methodology-score-buttons button { width: 100%; min-width: 0; height: 46px; font-size: 1rem; }
  .methodology-final-meta { grid-template-columns: 1fr; gap: 10px; }
  .methodology-visit-form .methodology-actions { display: block; padding-inline: 0; }
  .methodology-toast { top: 12px; right: 14px; left: 14px; max-width: none; }
}

@media (max-width: 390px) {
  .methodology-score-buttons { grid-template-columns: repeat(5, minmax(42px, 1fr)); gap: 5px; }
  .methodology-score-buttons button { height: 44px; }
}

@media (min-width: 1181px) {
  .methodology-section:has(#metodologiaTableBody) { overflow: visible; }
  .methodology-section:has(#metodologiaTableBody) .methodology-table-wrap { overflow: visible; }
  .methodology-table thead tr:first-child th { position: sticky; top: 48px; z-index: 7; }
  .methodology-table thead tr:nth-child(2) th { position: sticky; top: 77px; z-index: 7; }
  .methodology-table thead .methodology-code-col,
  .methodology-table thead .methodology-criterion-col { vertical-align: middle; }
}

@media (max-width: 767px) {
  .methodology-app {
    background: linear-gradient(180deg, #eef2f5 0, #f7f8fa 180px);
  }

  .methodology-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    align-items: start;
    gap: 15px;
    width: auto;
    margin: 8px 8px 0;
    padding: 21px 19px 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 20px;
    background:
      radial-gradient(circle at 88% 8%, rgba(255, 224, 232, .2), transparent 36%),
      radial-gradient(circle at 8% 100%, rgba(255, 255, 255, .08), transparent 38%),
      linear-gradient(138deg, #46121f 0%, #6b1b31 52%, #862b43 100%);
    box-shadow:
      0 14px 28px rgba(77, 18, 37, .18),
      inset 0 1px 0 rgba(255, 255, 255, .16);
    box-sizing: border-box;
  }

  .methodology-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(112deg, rgba(255, 255, 255, .07), transparent 38%, rgba(255, 255, 255, .035));
    pointer-events: none;
  }

  .methodology-hero > div { min-width: 0; }

  .methodology-kicker {
    margin-bottom: 6px;
    color: #e9c5cf;
    font-size: .66rem;
    line-height: 1.2;
    letter-spacing: .17em;
  }

  .methodology-hero h2 {
    max-width: 100%;
    color: #fff;
    font-size: clamp(1.48rem, 7vw, 1.82rem);
    line-height: 1.08;
    letter-spacing: -.025em;
    text-wrap: balance;
    overflow-wrap: normal;
  }

  .methodology-hero p {
    max-width: 34rem;
    margin-top: 8px;
    color: rgba(255, 241, 245, .82);
    font-size: .81rem;
    line-height: 1.42;
  }

  .methodology-state {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    min-width: 0;
  }

  .methodology-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, .13);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
    backdrop-filter: blur(8px);
    font-size: .69rem;
    letter-spacing: .055em;
  }

  .methodology-badge[data-status="finalizado"] {
    border-color: rgba(255, 255, 255, .72);
    background: rgba(255, 255, 255, .93);
  }

  .methodology-sync {
    flex: 1 1 150px;
    max-width: 100%;
    min-height: 0;
    color: rgba(255, 238, 243, .74);
    font-size: .74rem;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 390px) {
  .methodology-hero {
    gap: 13px;
    margin-inline: 6px;
    padding: 19px 17px 17px;
    border-radius: 18px;
  }

  .methodology-hero h2 { font-size: clamp(1.42rem, 7.2vw, 1.7rem); }
  .methodology-state { align-items: flex-start; flex-direction: column; }
  .methodology-sync { flex-basis: auto; width: 100%; }
}

@media (max-width: 600px) {
  .methodology-context,
  .methodology-section:has(.methodology-autocomplete),
  .methodology-periods,
  .methodology-period {
    overflow: visible;
  }

  .methodology-context,
  .methodology-section:has(.methodology-autocomplete),
  .methodology-period {
    position: relative;
  }

  .methodology-context:focus-within,
  .methodology-section:has(.methodology-autocomplete:focus-within) {
    z-index: 45;
  }

  .methodology-period:focus-within { z-index: 50; }

  .methodology-autocomplete:focus-within { z-index: 60; }

  .methodology-autocomplete::after {
    content: "";
    position: absolute;
    top: 23px;
    right: 14px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #7b5360;
    border-bottom: 2px solid #7b5360;
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none;
  }

  .methodology-autocomplete:focus-within::after {
    transform: translateY(-50%) rotate(225deg);
  }

  .methodology-autocomplete [data-methodology-autocomplete-input] {
    padding-right: 40px;
    text-overflow: ellipsis;
  }

  .methodology-autocomplete-list {
    z-index: 100;
    top: calc(100% + 7px);
    width: 100%;
    max-width: 100%;
    max-height: min(42vh, 310px);
    padding: 6px;
    overflow-x: hidden;
    overflow-y: auto;
    border-color: #cfd6de;
    border-radius: 11px;
    box-shadow: 0 16px 34px rgba(30, 39, 49, .2);
    overscroll-behavior: contain;
    box-sizing: border-box;
  }

  .methodology-autocomplete-list button {
    min-height: 48px;
    padding: 10px 11px;
    border-radius: 8px;
    font-size: .94rem;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .methodology-autocomplete-empty {
    min-height: 44px;
    padding: 12px 10px;
    font-size: .88rem;
  }

  .methodology-autocomplete-message {
    margin-top: 7px;
    font-size: .78rem;
    line-height: 1.4;
  }
}
