.optimization-page { min-width: 0; padding-top: 18px; }
.optimization-page section, .optimization-page article, .optimization-page div { min-width: 0; }
.optimization-hero { display: grid; grid-template-columns: 1.08fr .92fr; gap: 48px; align-items: center; min-height: 530px; padding: 58px; border: 1px solid #dedff0; border-radius: 25px; background: linear-gradient(135deg, #e9e8ff, #fff 58%, #e5f8f3); overflow: hidden; }
.optimization-hero h1 { max-width: 760px; margin: 0 0 18px; font-size: clamp(46px, 5.1vw, 72px); line-height: 1.04; letter-spacing: -3px; }
.optimization-hero .lead { max-width: 690px; margin: 0; }
.hero-actions { display: flex; gap: 11px; flex-wrap: wrap; margin-top: 28px; }
.hero-landscape { padding: 24px; border: 1px solid #d9ddea; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.landscape-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--muted); font: 500 11px 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .8px; }
.landscape-heading strong { padding: 6px 9px; border-radius: 6px; background: #252d46; color: #fff; font-size: 12px; text-transform: none; }
.hero-landscape svg { display: block; width: 100%; height: auto; margin-top: 7px; overflow: visible; }
.landscape-area { fill: url(#areaGradient); }
.landscape-line { fill: none; stroke: #5b51df; stroke-width: 5; stroke-linecap: round; }
.axis-line { stroke: #cfd5e2; stroke-width: 2; }
.candidate circle { fill: #fff; stroke: var(--orange); stroke-width: 5; }
.candidate text { fill: #9a4b20; font: 800 15px 'DM Mono', monospace; text-anchor: middle; }
.candidate-a { animation: candidatePulse 2.6s ease-in-out infinite; transform-origin: 64px 79px; }
.candidate-b { animation: candidatePulse 2.6s .5s ease-in-out infinite; transform-origin: 278px 105px; }
.candidate-c { animation: candidatePulse 2.6s 1s ease-in-out infinite; transform-origin: 406px 205px; }
.best-point circle { fill: var(--mint); stroke: #fff; stroke-width: 5; filter: drop-shadow(0 4px 7px rgba(25, 185, 154, .32)); }
.best-point path { stroke: var(--mint); stroke-width: 2; stroke-dasharray: 4; }
.best-point text { fill: #087e69; font: 700 12px Manrope, sans-serif; text-anchor: middle; }
.landscape-caption { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 700; }
.dot { display: inline-block; width: 9px; height: 9px; margin-right: 6px; border-radius: 50%; }
.candidate-dot { background: var(--orange); }
.best-dot { background: var(--mint); }
@keyframes candidatePulse { 50% { transform: scale(1.18); } }

.optimization-cycle { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.optimization-cycle article { display: grid; grid-template-columns: 45px 1fr; gap: 13px; min-height: 154px; padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.optimization-cycle article > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: #eceaff; color: var(--indigo); font: 800 13px 'DM Mono', monospace; }
.optimization-cycle strong { display: block; font-size: 18px; }
.optimization-cycle p { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.optimization-cycle > i { color: var(--violet); font-size: 22px; font-style: normal; }
.concept-note, .warning-note { margin-top: 20px; padding: 18px 21px; border-left: 5px solid var(--mint); border-radius: 0 10px 10px 0; background: #e7f9f4; color: #365d57; font-size: 16px; }
.concept-note strong, .warning-note strong { color: #147b69; }

.anatomy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.anatomy-card { position: relative; min-height: 290px; padding: 24px; border: 1px solid var(--line); border-top: 5px solid var(--indigo); border-radius: 14px; background: #fff; overflow: hidden; }
.anatomy-card:nth-child(2) { border-top-color: var(--mint); }
.anatomy-card:nth-child(3) { border-top-color: var(--orange); }
.anatomy-card:nth-child(4) { border-top-color: var(--red); }
.card-index { position: absolute; top: 18px; right: 20px; color: #a0a8b9; font: 500 11px 'DM Mono', monospace; }
.card-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: #eceaff; color: var(--indigo); font: 800 23px 'DM Mono', monospace; }
.anatomy-card:nth-child(2) .card-icon { background: #e2f8f2; color: #12836e; }
.anatomy-card:nth-child(3) .card-icon { background: #fff0e5; color: #b8582e; }
.anatomy-card:nth-child(4) .card-icon { background: #ffedf1; color: #bc3f59; }
.anatomy-card h3 { margin: 17px 0 8px; font-size: 21px; line-height: 1.3; }
.anatomy-card p { margin: 0; color: var(--muted); font-size: 15px; }
.anatomy-card code { display: block; margin-top: 17px; padding: 11px; border-radius: 8px; background: #f1f3f9; color: #3d4660; font: 600 14px 'DM Mono', monospace; }
.formula-story { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; margin-top: 18px; padding: 20px; border-radius: 13px; background: var(--navy); color: #fff; }
.formula-story div { display: grid; place-items: center; min-height: 80px; padding: 12px; border: 1px solid #46506c; border-radius: 10px; background: #2b344f; }
.formula-story div span { color: #aeb6ca; font-size: 11px; font-weight: 700; }
.formula-story div strong { margin-top: 5px; color: #fff; font: 700 20px 'DM Mono', monospace; }
.formula-story i { color: #929bb5; font-size: 11px; font-style: normal; text-align: center; }
.formula-story .formula-result { border-color: #23ba9d; background: #153f3b; }
.formula-story .formula-result strong { color: #75efd8; }

.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.comparison-grid > article { padding: 23px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.comparison-label { display: block; margin-bottom: 14px; color: var(--indigo); font: 600 11px 'DM Mono', monospace; letter-spacing: 1px; }
.comparison-pair { display: grid; grid-template-columns: 1fr auto 1fr; gap: 15px; align-items: stretch; }
.comparison-pair section { padding: 16px; border-radius: 10px; background: #f4f5fa; }
.comparison-pair section:last-child { background: #edfaf6; }
.comparison-pair b { display: block; font-size: 17px; }
.comparison-pair p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.comparison-pair em { align-self: center; color: #9ca5b8; font: 500 16px 'DM Mono', monospace; }

.experiment-section { margin-top: 86px; padding: 38px; border: 1px solid #d9ddea; border-radius: 22px; background: linear-gradient(145deg, #ecebff 0, #f7f8fc 38%, #ecfaf6 100%); scroll-margin-top: 100px; }
.experiment-head { display: flex; align-items: flex-start; justify-content: space-between; max-width: none; gap: 20px; }
.experiment-head > div { max-width: 920px; }
.experiment-head h2 { margin-bottom: 10px; }
.lab-badge { padding: 8px 11px; border-radius: 7px; background: #292f48; color: #fff; font: 600 10px 'DM Mono', monospace; letter-spacing: .7px; white-space: nowrap; }
.lab-shell { display: grid; grid-template-columns: 300px 1fr; gap: 18px; }
.lab-controls { align-self: start; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.control-heading { display: flex; align-items: center; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.control-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: #eceaff; color: var(--indigo); font: 800 18px 'DM Mono', monospace; }
.control-heading div { display: grid; }
.control-heading strong { font-size: 16px; }
.control-heading small { color: var(--muted); font-size: 12px; }
.lab-controls label { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 20px; color: #536078; font-size: 12px; font-weight: 800; }
.lab-controls output { color: var(--indigo); font: 700 14px 'DM Mono', monospace; }
.lab-controls input[type='range'] { width: 100%; margin: 15px 0 2px; accent-color: var(--indigo); cursor: pointer; }
.range-labels { display: flex; justify-content: space-between; color: #909aae; font: 500 10px 'DM Mono', monospace; }
.control-actions { display: grid; gap: 9px; margin-top: 22px; }
.objective-definition { display: grid; gap: 6px; margin-top: 22px; padding: 14px; border-radius: 9px; background: #f1f3f9; }
.objective-definition span { color: #737e94; font: 600 9px 'DM Mono', monospace; letter-spacing: .8px; }
.objective-definition code { color: #29324a; font: 700 14px 'DM Mono', monospace; }
.objective-definition small { color: #12836e; font-weight: 800; }
.lab-content { min-width: 0; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-bottom: 12px; }
.metric-grid article { padding: 14px; border: 1px solid var(--line); border-top: 4px solid var(--indigo); border-radius: 10px; background: #fff; }
.metric-grid article:nth-child(2) { border-top-color: var(--orange); }
.metric-grid article:nth-child(3) { border-top-color: var(--mint); }
.metric-grid article:nth-child(4) { border-top-color: var(--red); }
.metric-grid span, .metric-grid strong { display: block; }
.metric-grid span { color: var(--muted); font-size: 11px; font-weight: 800; }
.metric-grid strong { margin-top: 5px; font: 700 18px 'DM Mono', monospace; }
.metric-grid .metric-status { font: 800 13px Manrope, sans-serif; }
.chart-card { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 13px; }
.card-heading h3 { margin: 0; font-size: 19px; }
.card-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.status-pill { padding: 6px 9px; border-radius: 999px; background: #eeeefe; color: var(--indigo); font-size: 11px; font-weight: 850; white-space: nowrap; }
.status-pill.optimal { background: #e2f8f2; color: #087c66; }
.chart-card canvas { display: block; width: 100%; height: auto; border: 1px solid #e4e8f1; border-radius: 9px; background: #fbfcff; }
.calculation-strip { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 12px; padding: 15px 17px; border-radius: 10px; background: var(--navy); color: #bfc6d8; font-size: 12px; }
.calculation-strip code { color: #7cead5; font: 600 13px 'DM Mono', monospace; text-align: right; }
.reading-note { margin-top: 17px; padding: 18px 20px; border-left: 5px solid var(--indigo); border-radius: 0 10px 10px 0; background: #fff; }
.reading-note span { color: var(--indigo); font: 600 10px 'DM Mono', monospace; letter-spacing: .8px; }
.reading-note p { margin: 6px 0 0; color: #535f77; }

.real-world-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: stretch; }
.real-world-flow article { min-height: 205px; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.real-world-flow article > span { color: var(--indigo); font: 600 10px 'DM Mono', monospace; letter-spacing: 1px; }
.real-world-flow strong { display: block; margin-top: 16px; font-size: 19px; }
.real-world-flow p { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
.real-world-flow > i { align-self: center; color: var(--violet); font-size: 22px; font-style: normal; }
.warning-note { border-left-color: var(--orange); background: #fff2e8; color: #6a4935; }
.warning-note strong { color: #a75428; }

.code-explainer { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
.code-window { min-width: 0; overflow: hidden; border-radius: 14px; background: #172036; box-shadow: var(--shadow); }
.code-window-bar { display: flex; align-items: center; gap: 7px; min-height: 46px; padding: 0 17px; border-bottom: 1px solid #313b56; background: #202a43; }
.code-window-bar > span { width: 10px; height: 10px; border-radius: 50%; background: #e86975; }
.code-window-bar > span:nth-child(2) { background: #e9b04d; }
.code-window-bar > span:nth-child(3) { background: #45bd8f; }
.code-window-bar b { margin-left: 8px; color: #aab3c9; font: 500 11px 'DM Mono', monospace; }
.code-window pre { margin: 0; padding: 25px; color: #e8ecf7; overflow: auto; font: 500 14px/1.85 'DM Mono', monospace; }
.code-keyword { color: #d98cff; }
.code-function { color: #69ddc5; }
.code-number { color: #ffb46d; }
.code-built-in { color: #79b8ff; }
.code-steps { display: grid; gap: 10px; }
.code-steps article { display: grid; grid-template-columns: 43px 1fr; gap: 12px; padding: 17px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.code-steps article > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #eceaff; color: var(--indigo); font: 700 11px 'DM Mono', monospace; }
.code-steps strong { font-size: 17px; }
.code-steps p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.module-cta { margin-top: 80px; padding: 45px; border-radius: 18px; background: var(--navy); color: #fff; text-align: center; }
.module-cta .eyebrow { color: #aaa4ff; }
.module-cta h2 { margin: 0 auto 12px; font-size: 38px; letter-spacing: -1px; }
.module-cta > p:not(.eyebrow) { max-width: 720px; margin: 0 auto 22px; color: #c9d0e0; font-size: 17px; }

@media (max-width: 1120px) {
  .optimization-hero { grid-template-columns: 1fr; }
  .hero-landscape { max-width: 680px; }
  .anatomy-grid { grid-template-columns: 1fr 1fr; }
  .optimization-cycle { grid-template-columns: 1fr 1fr; }
  .optimization-cycle > i { display: none; }
  .lab-shell { grid-template-columns: 1fr; }
  .lab-controls { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
  .control-heading, .objective-definition { grid-column: 1 / -1; }
  .control-actions { align-self: end; }
  .real-world-flow { grid-template-columns: 1fr 1fr; }
  .real-world-flow > i { display: none; }
}

@media (max-width: 800px) {
  .optimization-hero { padding: 38px 26px; }
  .optimization-hero h1 { font-size: 43px; letter-spacing: -1.8px; }
  .comparison-grid, .code-explainer { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .formula-story { grid-template-columns: 1fr; }
  .formula-story i { padding: 2px; }
  .formula-story i::before { content: '↓ '; }
  .calculation-strip { align-items: flex-start; flex-direction: column; }
  .calculation-strip code { text-align: left; }
}

@media (max-width: 580px) {
  .optimization-hero { min-height: 0; padding: 30px 20px; }
  .optimization-hero h1 { font-size: 37px; }
  .hero-landscape { width: 100%; padding: 16px; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; }
  .optimization-cycle, .anatomy-grid, .comparison-grid, .real-world-flow, .metric-grid { grid-template-columns: 1fr; }
  .comparison-pair { grid-template-columns: 1fr; }
  .comparison-pair em { text-align: center; }
  .experiment-section { padding: 24px 16px; }
  .experiment-head { display: block; }
  .lab-badge { display: inline-block; margin-top: 8px; }
  .lab-controls { display: block; }
  .control-actions, .objective-definition { margin-top: 18px; }
  .card-heading { display: block; }
  .status-pill { display: inline-block; margin-top: 8px; }
  .code-window pre { max-width: 100%; padding: 18px; font-size: 12px; }
  .module-cta { padding: 35px 20px; }
  .module-cta h2 { font-size: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  .candidate { animation: none; }
}

/* Subtópico 02 · Função objetivo e variáveis de decisão */
.objective-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; min-height: 520px; padding: 58px; border: 1px solid #dedff0; border-radius: 25px; background: linear-gradient(135deg, #eceaff, #fff 54%, #fff2e8); }
.objective-hero h1 { max-width: 760px; margin: 0 0 18px; font-size: clamp(46px, 5vw, 70px); line-height: 1.04; letter-spacing: -3px; }
.objective-hero .lead { max-width: 680px; margin: 0; }
.objective-machine { display: grid; grid-template-columns: 1fr auto 1.15fr auto .78fr; gap: 10px; align-items: center; padding: 25px; border: 1px solid #d9ddea; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.machine-inputs { display: grid; gap: 9px; }
.machine-inputs > span { display: grid; gap: 3px; padding: 12px; border: 1px solid #dfe4ef; border-left: 4px solid var(--indigo); border-radius: 8px; background: #f7f8fc; }
.machine-inputs small, .machine-core small, .machine-output small { color: var(--muted); font-size: 10px; font-weight: 800; }
.machine-inputs b { font: 700 15px 'DM Mono', monospace; }
.machine-inputs > i { color: var(--indigo); font-size: 10px; font-style: normal; font-weight: 800; text-align: center; }
.machine-arrow { display: grid; place-items: center; color: var(--violet); }
.machine-arrow span { font-size: 24px; }
.machine-arrow small { max-width: 72px; color: #7e879b; font: 500 9px 'DM Mono', monospace; text-align: center; }
.machine-core { display: grid; place-items: center; min-height: 178px; padding: 18px; border-radius: 14px; background: var(--navy); color: #fff; text-align: center; }
.machine-core small { color: #aeb7cc; }
.machine-core strong { color: #75efd8; font: 800 37px 'DM Mono', monospace; }
.machine-core code { color: #d8deec; font: 500 11px/1.75 'DM Mono', monospace; }
.machine-output { display: grid; place-items: center; min-height: 118px; padding: 14px; border: 2px solid var(--mint); border-radius: 50%; background: #e9faf6; text-align: center; aspect-ratio: 1; }
.machine-output strong { color: #087c66; font: 800 29px 'DM Mono', monospace; }
.machine-output span { color: #12836e; font-size: 9px; font-weight: 800; }

.mapping-story { display: grid; grid-template-columns: 1fr 180px 1fr; gap: 18px; align-items: stretch; }
.mapping-story > article { padding: 25px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.mapping-tag { color: var(--indigo); font: 600 10px 'DM Mono', monospace; letter-spacing: 1px; }
.mapping-story h3 { margin: 12px 0 18px; font-size: 23px; }
.vector-visual { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vector-visual > span { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: center; padding: 14px; border-radius: 10px; background: #eceaff; color: var(--indigo); font: 700 12px 'DM Mono', monospace; }
.vector-visual > span:last-child { background: #e7f9f4; color: #12836e; }
.vector-visual strong { font-size: 25px; text-align: right; }
.vector-visual small { grid-column: 1 / -1; color: var(--muted); font: 700 10px Manrope, sans-serif; }
.mapping-story article > code { display: block; margin-top: 12px; padding: 11px; border-radius: 8px; background: #f1f3f9; color: #35405a; font: 650 14px 'DM Mono', monospace; text-align: center; }
.mapping-operator { display: grid; place-items: center; align-content: center; padding: 20px; border-radius: 14px; background: var(--navy); color: #fff; text-align: center; }
.mapping-operator span { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--indigo); font: 800 27px 'DM Mono', monospace; }
.mapping-operator b { margin-top: 10px; }
.mapping-operator small { color: #aab3c6; font-size: 10px; }
.mapping-result { border-top: 5px solid var(--mint) !important; }
.score-value { display: block; color: #087c66; font: 800 58px 'DM Mono', monospace; }
.mapping-result p { max-width: 390px; margin: 8px 0 0; color: var(--muted); }

.variable-types-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.variable-types-grid > article { min-height: 340px; padding: 23px; border: 1px solid var(--line); border-top: 5px solid var(--indigo); border-radius: 14px; background: #fff; }
.variable-types-grid > article:nth-child(2) { border-top-color: var(--mint); }
.variable-types-grid > article:nth-child(3) { border-top-color: var(--orange); }
.variable-types-grid > article:nth-child(4) { border-top-color: var(--red); }
.type-symbol { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 13px; background: #eceaff; color: var(--indigo); font: 800 20px 'DM Mono', monospace; }
.type-label { display: block; margin-top: 15px; color: var(--indigo); font: 600 10px 'DM Mono', monospace; letter-spacing: .8px; }
.variable-types-grid h3 { margin: 7px 0; font-size: 19px; line-height: 1.35; }
.variable-types-grid p { min-height: 72px; margin: 0; color: var(--muted); font-size: 14px; }
.variable-types-grid code { display: block; margin-top: 15px; padding: 10px; border-radius: 7px; background: #f2f4f9; color: #3e4861; font: 650 12px 'DM Mono', monospace; text-align: center; }
.type-scale { position: relative; height: 35px; margin-top: 15px; }
.type-scale i { position: absolute; top: 9px; left: 0; right: 0; height: 5px; border-radius: 4px; background: linear-gradient(90deg, #d9d7ff, var(--indigo)); }
.type-scale b { position: absolute; top: 2px; width: 18px; height: 18px; border: 4px solid #fff; border-radius: 50%; background: var(--indigo); box-shadow: 0 2px 7px #7972d9; }
.type-scale span { position: absolute; top: 19px; color: #909aae; font: 500 9px 'DM Mono', monospace; }
.type-scale span:last-child { right: 0; }
.integer-row, .permutation-row { display: flex; align-items: center; justify-content: space-between; gap: 5px; margin-top: 15px; }
.integer-row span, .permutation-row span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; background: #eef0f6; color: #576179; font: 700 11px 'DM Mono', monospace; }
.integer-row .selected { background: var(--mint); color: #fff; }
.permutation-row i { color: var(--violet); font-style: normal; }
.binary-switch { display: grid; grid-template-columns: 1fr 45px 1fr; gap: 8px; align-items: center; margin-top: 18px; color: #8b94a7; font-size: 11px; font-weight: 800; }
.binary-switch b { position: relative; height: 24px; border-radius: 20px; background: #e3e6ee; }
.binary-switch b::after { content: ''; position: absolute; top: 3px; right: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--orange); }
.binary-switch .active { color: #b8582e; }
.vector-anatomy { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; margin-top: 17px; padding: 19px; border-radius: 13px; background: var(--navy); color: #fff; }
.vector-anatomy div { display: grid; place-items: center; padding: 14px; border: 1px solid #46506d; border-radius: 9px; background: #2b344f; }
.vector-anatomy span { color: #aeb6ca; font-size: 10px; font-weight: 800; }
.vector-anatomy strong { margin-top: 5px; color: #77ead5; font: 700 17px 'DM Mono', monospace; }
.vector-anatomy > i { max-width: 210px; color: #aeb6ca; font-size: 11px; font-style: normal; text-align: center; }

.direction-board { display: grid; grid-template-columns: 1fr 250px 1fr; gap: 16px; align-items: stretch; }
.direction-card { padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.direction-heading { display: flex; align-items: center; gap: 13px; }
.direction-heading > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #fff0e5; color: #b8582e; font-size: 24px; font-weight: 900; }
.maximize .direction-heading > span { background: #e2f8f2; color: #12836e; }
.direction-heading small { color: var(--orange); font: 600 10px 'DM Mono', monospace; }
.maximize .direction-heading small { color: var(--mint); }
.direction-heading h3 { margin: 3px 0 0; font-size: 21px; }
.direction-bars { display: flex; align-items: end; justify-content: center; gap: 20px; height: 145px; margin: 24px 0 17px; padding: 12px 20px 0; border-bottom: 2px solid #dfe4ef; background: repeating-linear-gradient(to top, transparent 0, transparent 35px, #eef0f5 36px); }
.direction-bars i { position: relative; width: 55px; border-radius: 7px 7px 0 0; background: #cdd2e0; }
.direction-bars i.best { background: linear-gradient(#ff9d65, var(--orange)); }
.maximize .direction-bars i.best { background: linear-gradient(#5ed9bf, var(--mint)); }
.direction-bars b { position: absolute; top: -23px; width: 100%; color: #606b82; font: 700 11px 'DM Mono', monospace; text-align: center; }
.direction-card p { color: var(--muted); font-size: 14px; }
.direction-card code { display: block; padding: 11px; border-radius: 8px; background: #f2f4f9; color: #3d4760; font: 600 12px 'DM Mono', monospace; text-align: center; }
.direction-equivalence { display: grid; place-items: center; align-content: center; padding: 20px; border-radius: 14px; background: var(--navy); color: #fff; text-align: center; }
.direction-equivalence > span { color: #aca6ff; font: 600 10px 'DM Mono', monospace; letter-spacing: 1px; }
.direction-equivalence strong { margin: 12px 0; color: #fff; font: 700 18px 'DM Mono', monospace; }
.direction-equivalence i { color: #75efd8; font-size: 25px; font-style: normal; }
.direction-equivalence p { color: #b7bfd1; font-size: 12px; }

.objective-lab-shell { display: grid; grid-template-columns: 310px 1fr; gap: 18px; }
.vector-controls { display: block; }
.vector-control-field { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.vector-control-field label { margin-top: 0; }
.vector-control-field input { width: 100%; margin: 14px 0 2px; accent-color: var(--indigo); }
.objective-metrics article:first-child { border-top-color: var(--violet); }
.objective-metrics article:nth-child(2) { border-top-color: var(--mint); }
.objective-metrics article:nth-child(3) { border-top-color: var(--orange); }
.objective-metrics article:nth-child(4) { border-top-color: var(--red); }
.objective-metrics strong { font-size: 16px; }
.contour-card canvas { aspect-ratio: 1.45 / 1; }
.contour-legend { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; margin-top: 10px; color: var(--muted); font-size: 10px; font-weight: 800; }
.contour-legend i { height: 8px; border-radius: 999px; background: linear-gradient(90deg, #403974, #5e61b9, #3fa69b, #75dfae, #e8f8b5); }
.objective-calculation code { font-size: 12px; }
.modeling-pipeline { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.modeling-pipeline article { display: grid; grid-template-columns: 40px 1fr; gap: 12px; min-height: 205px; padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.modeling-pipeline article > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: #eceaff; color: var(--indigo); font: 700 11px 'DM Mono', monospace; }
.modeling-pipeline small { color: var(--indigo); font: 600 9px 'DM Mono', monospace; letter-spacing: .7px; }
.modeling-pipeline strong { display: block; margin-top: 6px; font-size: 16px; line-height: 1.35; }
.modeling-pipeline p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.modeling-pipeline > i { color: var(--violet); font-size: 20px; font-style: normal; }
.modeling-example { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 17px; overflow: hidden; border-radius: 12px; background: #46506c; }
.modeling-example div { display: grid; padding: 17px; background: var(--navy); }
.modeling-example span { color: #aca6ff; font: 600 9px 'DM Mono', monospace; letter-spacing: .7px; }
.modeling-example strong { margin-top: 6px; color: #fff; font-size: 15px; }
.modeling-risks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.modeling-risks article { padding: 22px; border: 1px solid var(--line); border-top: 5px solid var(--orange); border-radius: 13px; background: #fff; }
.modeling-risks article > span { color: var(--orange); font: 700 11px 'DM Mono', monospace; }
.modeling-risks h3 { margin: 13px 0 8px; font-size: 19px; }
.modeling-risks p { min-height: 95px; margin: 0; color: var(--muted); font-size: 14px; }
.modeling-risks b { display: block; margin-top: 14px; color: #a95526; font-size: 13px; }
.code-comment { color: #8592ac; }

@media (max-width: 1150px) {
  .objective-hero { grid-template-columns: 1fr; }
  .objective-machine { max-width: 750px; }
  .variable-types-grid, .modeling-risks { grid-template-columns: 1fr 1fr; }
  .direction-board { grid-template-columns: 1fr 1fr; }
  .direction-equivalence { grid-column: 1 / -1; grid-row: 2; }
  .objective-lab-shell { grid-template-columns: 1fr; }
  .modeling-pipeline { grid-template-columns: 1fr 1fr; }
  .modeling-pipeline > i { display: none; }
}

@media (max-width: 800px) {
  .objective-hero { padding: 38px 26px; }
  .objective-hero h1 { font-size: 43px; letter-spacing: -1.8px; }
  .objective-machine { grid-template-columns: 1fr; }
  .machine-arrow span { transform: rotate(90deg); }
  .machine-output { width: 130px; justify-self: center; }
  .mapping-story { grid-template-columns: 1fr; }
  .mapping-operator { min-height: 150px; }
  .vector-anatomy { grid-template-columns: 1fr; }
  .direction-board { grid-template-columns: 1fr; }
  .direction-equivalence { grid-column: auto; grid-row: auto; }
  .modeling-example { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 580px) {
  .objective-hero { padding: 30px 20px; }
  .objective-hero h1 { font-size: 37px; }
  .objective-machine { padding: 16px; }
  .variable-types-grid, .modeling-risks, .modeling-pipeline, .modeling-example { grid-template-columns: 1fr; }
  .variable-types-grid > article { min-height: 0; }
  .variable-types-grid p, .modeling-risks p { min-height: 0; }
  .objective-metrics { grid-template-columns: 1fr; }
  .contour-card { padding: 14px; }
  .contour-card canvas { min-height: 330px; aspect-ratio: auto; }
}

/* Subtópico 03 · Restrições e espaço de busca */
.constraints-hero { display: grid; grid-template-columns: 1.02fr .98fr; gap: 48px; align-items: center; min-height: 520px; padding: 58px; border: 1px solid #dce2ee; border-radius: 25px; background: linear-gradient(135deg, #e9faf5, #fff 55%, #fff0e7); }
.constraints-hero h1 { max-width: 760px; margin: 0 0 18px; font-size: clamp(46px, 5vw, 70px); line-height: 1.04; letter-spacing: -3px; }
.constraints-hero .lead { max-width: 700px; margin: 0; }
.feasible-hero-visual { padding: 24px; border: 1px solid #d9ddea; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.feasible-title { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font: 600 10px 'DM Mono', monospace; letter-spacing: .9px; }
.feasible-title strong { padding: 6px 9px; border-radius: 6px; background: var(--navy); color: #fff; }
.feasible-hero-visual svg { display: block; width: 100%; height: auto; }
.constraint-svg-label { font: 700 12px 'DM Mono', monospace; }
.constraint-svg-label.orange { fill: #bd5c2c; }
.constraint-svg-label.violet { fill: #4e46e5; }
.feasible-svg-label { fill: #087c66; font: 800 13px Manrope, sans-serif; }
.hero-feasible-point circle { fill: var(--mint); stroke: #fff; stroke-width: 5; }
.hero-feasible-point text { fill: #087c66; font: 800 13px Manrope, sans-serif; text-anchor: middle; }
.hero-infeasible-point circle { fill: #fff0f1; stroke: var(--red); stroke-width: 4; }
.hero-infeasible-point path { stroke: var(--red); stroke-width: 3; }
.hero-infeasible-point text { fill: #b33d54; font: 800 12px Manrope, sans-serif; text-anchor: middle; }
.feasible-legend { display: flex; gap: 19px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 800; }
.feasible-legend i { display: inline-block; width: 18px; height: 9px; margin-right: 6px; }
.legend-feasible { border-radius: 3px; background: #bdeedc; }
.legend-boundary { border-top: 3px solid var(--orange); }

.space-layers { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 14px; align-items: center; }
.space-layers article { display: grid; grid-template-columns: 48px 1fr; gap: 14px; min-height: 200px; padding: 23px; border: 1px solid var(--line); border-top: 5px solid #8c87ae; border-radius: 14px; background: #fff; }
.space-layers article.space-search { border-top-color: var(--indigo); }
.space-layers article.space-feasible { border-top-color: var(--mint); }
.space-layers article > span { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 11px; background: #f0eff5; color: #66617d; font: 800 13px 'DM Mono', monospace; }
.space-search > span { background: #eceaff !important; color: var(--indigo) !important; }
.space-feasible > span { background: #e1f8f1 !important; color: #12836e !important; }
.space-layers small { color: var(--indigo); font: 600 9px 'DM Mono', monospace; letter-spacing: .8px; }
.space-layers h3 { margin: 7px 0 14px; font-size: 18px; line-height: 1.35; }
.space-layers code { display: block; padding: 10px; border-radius: 7px; background: #f2f4f9; color: #3d4760; font: 600 12px 'DM Mono', monospace; }
.space-layers > i { color: var(--violet); font-size: 23px; font-style: normal; transform: rotate(-90deg); }
.set-relation { display: grid; grid-template-columns: 180px 1fr; gap: 22px; align-items: center; margin-top: 17px; padding: 20px; border-radius: 12px; background: var(--navy); color: #fff; }
.set-relation strong { color: #75efd8; font: 800 28px 'DM Mono', monospace; text-align: center; }
.set-relation p { margin: 0; color: #c0c7d7; }

.constraint-types-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.constraint-types-grid > article { min-height: 335px; padding: 23px; border: 1px solid var(--line); border-top: 5px solid var(--indigo); border-radius: 14px; background: #fff; }
.constraint-types-grid > article:nth-child(2) { border-top-color: var(--orange); }
.constraint-types-grid > article:nth-child(3) { border-top-color: var(--mint); }
.constraint-types-grid > article:nth-child(4) { border-top-color: var(--red); }
.constraint-type-icon { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 13px; background: #eceaff; color: var(--indigo); font: 800 21px 'DM Mono', monospace; }
.constraint-type-label { display: block; margin-top: 14px; color: var(--indigo); font: 600 10px 'DM Mono', monospace; letter-spacing: .8px; }
.constraint-types-grid h3 { margin: 7px 0; font-size: 19px; }
.constraint-types-grid p { min-height: 70px; margin: 0; color: var(--muted); font-size: 14px; }
.constraint-types-grid code { display: block; margin-top: 15px; padding: 10px; border-radius: 7px; background: #f2f4f9; color: #3d4760; font: 650 12px 'DM Mono', monospace; text-align: center; }
.bound-visual { position: relative; display: flex; align-items: center; justify-content: space-between; height: 38px; margin-top: 15px; }
.bound-visual i { position: absolute; left: 8px; right: 8px; top: 11px; height: 6px; border-radius: 5px; background: linear-gradient(90deg, var(--indigo), var(--mint)); }
.bound-visual b { z-index: 1; width: 19px; height: 19px; border: 4px solid #fff; border-radius: 50%; background: var(--indigo); box-shadow: 0 2px 6px #8780da; }
.bound-visual b:nth-of-type(2) { background: var(--mint); }
.bound-visual span { position: absolute; top: 26px; color: #8993a7; font: 500 9px 'DM Mono', monospace; }
.bound-visual span:last-child { right: 0; }
.inequality-visual { display: grid; grid-template-columns: 1fr 4px 1fr; align-items: center; height: 42px; margin-top: 15px; border-radius: 8px; overflow: hidden; color: #fff; font-size: 10px; font-weight: 800; text-align: center; }
.inequality-visual span:first-child { height: 100%; padding-top: 13px; background: var(--mint); }
.inequality-visual i { height: 100%; background: var(--orange); }
.inequality-visual span:last-child { height: 100%; padding-top: 13px; background: #d8dce6; color: #717b90; }
.equality-visual { display: flex; justify-content: center; gap: 8px; margin-top: 15px; }
.equality-visual span, .equality-visual strong { padding: 9px; border-radius: 7px; background: #eef0f5; color: #8c95a8; font: 600 10px 'DM Mono', monospace; }
.equality-visual strong { background: var(--mint); color: #fff; }
.logic-visual { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 15px; }
.logic-visual span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: #ffedf1; color: #b93f58; font: 800 14px 'DM Mono', monospace; }
.logic-visual i { color: #8b94a7; font-size: 10px; font-style: normal; font-weight: 800; }

.geometry-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.geometry-steps article { position: relative; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.geometry-number { position: absolute; top: 16px; right: 17px; color: var(--indigo); font: 700 11px 'DM Mono', monospace; }
.mini-plane { position: relative; height: 150px; border: 1px solid #dfe4ef; border-radius: 9px; background: linear-gradient(to right, transparent 49.5%, #edf0f5 50%, transparent 50.5%), linear-gradient(to bottom, transparent 49.5%, #edf0f5 50%, transparent 50.5%), #f9fafd; overflow: hidden; }
.mini-plane::after { content: ''; position: absolute; inset: 0; background: linear-gradient(145deg, transparent 0 48%, rgba(25,185,154,.18) 49% 100%); }
.mini-plane i { position: absolute; z-index: 2; left: -10%; top: 50%; width: 120%; height: 3px; background: var(--orange); transform: rotate(-25deg); }
.mini-plane .line-two { background: var(--indigo); transform: rotate(-52deg); }
.mini-plane.intersection::after { background: linear-gradient(145deg, transparent 0 48%, rgba(25,185,154,.23) 49% 100%); clip-path: polygon(0 55%, 39% 70%, 69% 100%, 0 100%); }
.mini-plane.intersection b { position: absolute; z-index: 3; left: 42%; top: 61%; width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: var(--mint); }
.geometry-steps h3 { margin: 16px 0 7px; font-size: 19px; }
.geometry-steps code { display: inline-block; padding: 7px 9px; border-radius: 6px; background: #f1f3f8; font: 600 12px 'DM Mono', monospace; }
.geometry-steps p { margin: 9px 0 0; color: var(--muted); font-size: 14px; }
.constraint-reading-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; margin-top: 17px; padding: 18px; border-radius: 12px; background: var(--navy); }
.constraint-reading-flow div { display: grid; place-items: center; min-height: 76px; padding: 12px; border: 1px solid #46506c; border-radius: 9px; color: #fff; }
.constraint-reading-flow span { color: #aeb6ca; font-size: 10px; }
.constraint-reading-flow strong { margin-top: 4px; font: 700 15px 'DM Mono', monospace; }
.constraint-reading-flow > i { color: #878ff5; font-style: normal; }
.constraint-reading-flow .constraint-decision { border-color: var(--mint); background: #15423d; }
.constraint-reading-flow .constraint-decision strong { color: #75efd8; font-family: Manrope, sans-serif; }

.constraints-lab-shell { display: grid; grid-template-columns: 310px 1fr; gap: 18px; }
.constraint-controls { display: block; }
.constraint-metrics article:nth-child(1) { border-top-color: var(--violet); }
.constraint-metrics article:nth-child(2) { border-top-color: var(--mint); }
.constraint-metrics article:nth-child(3) { border-top-color: var(--orange); }
.constraint-metrics article:nth-child(4) { border-top-color: var(--red); }
.constraint-metrics strong { font-size: 16px; }
.status-pill.infeasible { background: #ffebef; color: #b73e56; }
.feasible-chart-card canvas { min-height: 430px; touch-action: none; cursor: crosshair; }
.feasible-chart-legend { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); font-size: 10px; font-weight: 800; }
.feasible-chart-legend i { display: inline-block; width: 22px; height: 9px; margin-right: 6px; }
.area-key { border-radius: 3px; background: #b9efdc; }
.line-key { height: 0 !important; border-top: 3px solid var(--orange); }
.line-key.two { border-color: var(--indigo); }
.point-key { width: 10px !important; border-radius: 50%; background: var(--red); }
.constraint-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.constraint-ledger article { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 14px; border-left: 5px solid var(--red); border-radius: 0 9px 9px 0; background: #fff; }
.constraint-ledger article.satisfied { border-left-color: var(--mint); }
.constraint-ledger span { color: var(--muted); font: 600 9px 'DM Mono', monospace; }
.constraint-ledger code { color: #39435c; font: 600 11px 'DM Mono', monospace; text-align: center; }
.constraint-ledger strong { color: #b43d55; font-size: 11px; }
.constraint-ledger .satisfied strong { color: #087c66; }

.handling-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.handling-grid article { min-height: 350px; padding: 22px; border: 1px solid var(--line); border-top: 5px solid var(--indigo); border-radius: 14px; background: #fff; }
.handling-grid article:nth-child(2) { border-top-color: var(--mint); }
.handling-grid article:nth-child(3) { border-top-color: var(--orange); }
.handling-grid article:nth-child(4) { border-top-color: var(--red); }
.handling-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #eceaff; color: var(--indigo); font: 800 22px 'DM Mono', monospace; }
.handling-grid article > span { display: block; margin-top: 13px; color: var(--indigo); font: 600 9px 'DM Mono', monospace; letter-spacing: .8px; }
.handling-grid h3 { margin: 6px 0; font-size: 20px; }
.handling-grid p { min-height: 66px; margin: 0; color: var(--muted); font-size: 14px; }
.handling-flow { display: grid; grid-template-columns: 1fr auto 1fr; gap: 7px; align-items: center; margin-top: 15px; padding: 11px; border-radius: 8px; background: #f2f4f9; text-align: center; }
.handling-flow b { color: #737d92; font-size: 11px; }
.handling-flow i { color: var(--violet); font-style: normal; }
.handling-flow strong { color: var(--indigo); font-size: 11px; }
.handling-grid article > small { display: block; margin-top: 13px; color: #7a8599; font-size: 11px; }
.penalty-equation { display: grid; grid-template-columns: auto 1fr; gap: 6px 25px; align-items: center; margin-top: 17px; padding: 20px 24px; border-radius: 12px; background: var(--navy); color: #fff; }
.penalty-equation span { color: #aca6ff; font: 600 10px 'DM Mono', monospace; letter-spacing: .7px; }
.penalty-equation strong { grid-row: 1 / 3; grid-column: 2; color: #75efd8; font: 700 19px 'DM Mono', monospace; text-align: right; }
.penalty-equation p { margin: 0; color: #b9c1d2; font-size: 12px; }
.constraint-mistakes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.constraint-mistakes article { padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.constraint-mistakes article > span { color: var(--red); font: 700 11px 'DM Mono', monospace; }
.constraint-mistakes h3 { margin: 12px 0 8px; font-size: 19px; }
.constraint-mistakes code { display: block; padding: 10px; border-radius: 7px; background: #ffedf1; color: #b43d55; font: 650 12px 'DM Mono', monospace; }
.constraint-mistakes p { margin: 11px 0 0; color: var(--muted); font-size: 13px; }

@media (max-width: 1150px) {
  .constraints-hero { grid-template-columns: 1fr; }
  .feasible-hero-visual { max-width: 720px; }
  .constraint-types-grid, .handling-grid, .constraint-mistakes { grid-template-columns: 1fr 1fr; }
  .constraints-lab-shell { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .constraints-hero { padding: 38px 26px; }
  .constraints-hero h1 { font-size: 43px; letter-spacing: -1.8px; }
  .space-layers { grid-template-columns: 1fr; }
  .space-layers > i { transform: none; text-align: center; }
  .set-relation { grid-template-columns: 1fr; }
  .geometry-steps { grid-template-columns: 1fr; }
  .constraint-reading-flow { grid-template-columns: 1fr; }
  .constraint-reading-flow > i { text-align: center; transform: rotate(90deg); }
  .constraint-ledger { grid-template-columns: 1fr; }
  .penalty-equation { grid-template-columns: 1fr; }
  .penalty-equation strong { grid-row: auto; grid-column: auto; text-align: left; }
}
@media (max-width: 580px) {
  .constraints-hero { padding: 30px 20px; }
  .constraints-hero h1 { font-size: 37px; }
  .feasible-hero-visual { padding: 15px; }
  .constraint-types-grid, .handling-grid, .constraint-mistakes { grid-template-columns: 1fr; }
  .constraint-types-grid > article, .handling-grid article { min-height: 0; }
  .constraint-types-grid p, .handling-grid p { min-height: 0; }
  .constraint-metrics { grid-template-columns: 1fr; }
  .feasible-chart-card { padding: 14px; }
  .feasible-chart-card canvas { min-height: 360px; }
  .constraint-ledger article { grid-template-columns: 1fr; }
  .constraint-ledger code { text-align: left; }
}

/* Subtópico 04 · Máximos e mínimos */
.extrema-hero { display: grid; grid-template-columns: 1.02fr .98fr; gap: 48px; align-items: center; min-height: 520px; padding: 58px; border: 1px solid #dedff0; border-radius: 25px; background: linear-gradient(135deg, #eeeaff, #fff 55%, #e8faf5); }
.extrema-hero h1 { max-width: 740px; margin: 0 0 18px; font-size: clamp(47px, 5vw, 71px); line-height: 1.04; letter-spacing: -3px; }
.extrema-hero .lead { max-width: 690px; margin: 0; }
.extrema-hero-visual { padding: 24px; border: 1px solid #d9ddea; border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.extrema-hero-visual svg { display: block; width: 100%; height: auto; }
.extrema-fill { fill: rgba(91, 81, 223, .14); }
.extrema-curve { fill: none; stroke: #5b51df; stroke-width: 5; stroke-linecap: round; }
.extrema-marker circle { fill: #fff; stroke: var(--orange); stroke-width: 5; }
.extrema-marker path { stroke: var(--orange); stroke-width: 2; stroke-dasharray: 4; }
.extrema-marker text { fill: #9c4c22; font: 800 11px Manrope, sans-serif; text-anchor: middle; }
.extrema-marker.global-min circle { fill: var(--mint); stroke: #fff; filter: drop-shadow(0 4px 7px rgba(25,185,154,.35)); }
.extrema-marker.global-min path { stroke: var(--mint); }
.extrema-marker.global-min text { fill: #087c66; }
.extrema-legend { display: flex; gap: 18px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 800; }
.extrema-legend i { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; }
.local-key { background: var(--orange); }
.global-key { background: var(--mint); }

.extreme-comparison { display: grid; grid-template-columns: 1fr 150px 1fr; gap: 17px; align-items: stretch; }
.extreme-comparison > article { padding: 25px; border: 1px solid var(--line); border-top: 5px solid var(--orange); border-radius: 14px; background: #fff; }
.extreme-comparison .global-extreme-card { border-top-color: var(--mint); }
.extreme-comparison article > span { color: var(--orange); font: 600 10px 'DM Mono', monospace; letter-spacing: .9px; }
.extreme-comparison .global-extreme-card > span { color: var(--mint); }
.extreme-comparison h3 { margin: 17px 0 7px; font-size: 23px; }
.extreme-comparison p { color: var(--muted); }
.extreme-comparison code { display: block; padding: 11px; border-radius: 8px; background: #f2f4f9; color: #3c4660; font: 600 12px 'DM Mono', monospace; text-align: center; }
.neighborhood-diagram, .domain-diagram { position: relative; height: 130px; margin-top: 15px; border-radius: 9px; background: #f7f8fc; overflow: hidden; }
.neighborhood-diagram i, .domain-diagram i { position: absolute; left: 5%; top: 19%; width: 90%; height: 115%; border: 4px solid var(--orange); border-color: var(--orange) transparent transparent transparent; border-radius: 50%; transform: rotate(180deg); }
.neighborhood-diagram b, .domain-diagram b { position: absolute; left: 48%; top: 69%; width: 14px; height: 14px; border: 3px solid #fff; border-radius: 50%; background: var(--orange); }
.neighborhood-diagram em { position: absolute; left: 30%; top: 26%; width: 40%; height: 65%; border: 2px dashed #a5adbd; border-radius: 50%; }
.domain-diagram i { left: -4%; width: 108%; border-color: var(--mint) transparent transparent transparent; }
.domain-diagram b { left: 23%; top: 61%; background: var(--orange); }
.domain-diagram em { position: absolute; left: 62%; top: 49%; width: 14px; height: 14px; border: 3px solid #fff; border-radius: 50%; background: var(--mint); }
.domain-diagram strong { position: absolute; left: 57%; top: 18%; width: 28%; height: 80%; border: 2px dashed #86d8c7; border-radius: 50%; }
.comparison-scope { display: grid; place-items: center; align-content: center; border-radius: 14px; background: var(--navy); color: #fff; text-align: center; }
.comparison-scope span { color: #b9c1d2; font-size: 12px; font-weight: 800; }
.comparison-scope i { margin-top: 8px; color: #75efd8; font-size: 28px; font-style: normal; }

.slope-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 11px; align-items: center; }
.slope-flow article { min-height: 205px; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; text-align: center; }
.slope-flow .critical-card { border-top: 5px solid var(--orange); }
.slope-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: auto; border-radius: 13px; font-size: 26px; font-weight: 900; }
.slope-icon.descending { background: #e8faf5; color: #12836e; }
.slope-icon.flat { background: #fff0e5; color: #b8582e; }
.slope-icon.ascending { background: #eceaff; color: var(--indigo); }
.slope-flow article > span { display: block; margin-top: 10px; color: var(--indigo); font: 650 12px 'DM Mono', monospace; }
.slope-flow h3 { margin: 8px 0 5px; font-size: 19px; }
.slope-flow p { margin: 0; color: var(--muted); font-size: 14px; }
.slope-flow > i { color: var(--violet); font-size: 21px; font-style: normal; }
.second-derivative-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin-top: 15px; }
.second-derivative-grid article { display: grid; grid-template-columns: 75px 1fr; gap: 9px 13px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.second-derivative-grid article > span { grid-column: 1 / -1; color: var(--indigo); font: 650 11px 'DM Mono', monospace; }
.curvature { display: grid; place-items: center; grid-row: 2 / 4; width: 65px; height: 65px; border-radius: 12px; background: #e8faf5; color: #12836e; font: 800 36px 'DM Mono', monospace; }
.curvature.cap { background: #fff0e5; color: #b8582e; }
.curvature.uncertain { background: #f0eff5; color: #6d6782; }
.second-derivative-grid strong { grid-column: 2; font-size: 16px; }
.second-derivative-grid p { grid-column: 2; margin: 0; color: var(--muted); font-size: 12px; }

.candidate-checklist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.candidate-checklist article { display: grid; grid-template-columns: 45px 1fr; gap: 13px; min-height: 205px; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.candidate-checklist article > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: #eceaff; color: var(--indigo); font: 750 12px 'DM Mono', monospace; }
.candidate-checklist small { color: var(--indigo); font: 600 9px 'DM Mono', monospace; letter-spacing: .8px; }
.candidate-checklist h3 { margin: 6px 0 8px; font-size: 19px; }
.candidate-checklist code { display: inline-block; padding: 7px 9px; border-radius: 6px; background: #f1f3f8; font: 650 12px 'DM Mono', monospace; }
.candidate-checklist p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.interval-example { margin-top: 17px; padding: 22px; border-radius: 12px; background: var(--navy); color: #fff; }
.interval-example > div { position: relative; display: flex; align-items: center; justify-content: space-between; height: 42px; }
.interval-example i { position: absolute; left: 25px; right: 25px; height: 5px; border-radius: 5px; background: linear-gradient(90deg, var(--orange), var(--violet), var(--mint)); }
.interval-example b { z-index: 1; width: 17px; height: 17px; border: 4px solid #fff; border-radius: 50%; background: var(--violet); }
.interval-example .endpoint { background: var(--orange); }
.interval-example .endpoint.right { background: var(--mint); }
.interval-example > div > span { z-index: 1; color: #fff; font: 650 12px 'DM Mono', monospace; }
.interval-example p { margin: 11px 0 0; color: #b9c1d2; font-size: 12px; text-align: center; }

.extrema-lab-shell { display: grid; grid-template-columns: 310px 1fr; gap: 18px; }
.extrema-controls { display: block; }
.search-direction { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 20px 0 0; padding: 13px; border: 1px solid var(--line); border-radius: 9px; }
.search-direction legend { padding: 0 6px; color: var(--muted); font-size: 11px; font-weight: 800; }
.search-direction label { margin: 0; }
.search-direction input { position: absolute; opacity: 0; }
.search-direction span { display: block; padding: 9px; border: 1px solid #d8ddea; border-radius: 7px; color: #5e6980; font-size: 12px; text-align: center; cursor: pointer; }
.search-direction input:checked + span { border-color: var(--indigo); background: #eceaff; color: var(--indigo); }
.rate-label { margin-top: 18px !important; }
.extrema-metrics article:nth-child(1) { border-top-color: var(--violet); }
.extrema-metrics article:nth-child(2) { border-top-color: var(--mint); }
.extrema-metrics article:nth-child(3) { border-top-color: var(--orange); }
.extrema-metrics article:nth-child(4) { border-top-color: var(--red); }
.extrema-metrics strong { font-size: 16px; }
.extrema-chart-card canvas { min-height: 400px; }
.extrema-chart-legend { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 11px; color: var(--muted); font-size: 10px; font-weight: 800; }
.extrema-chart-legend i { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; }
.global-min-key { background: var(--mint); }
.local-extreme-key { background: var(--orange); }
.current-key { background: var(--red); }
.trail-key { width: 22px !important; height: 0 !important; border-top: 3px dashed var(--violet); border-radius: 0 !important; }
.extrema-calculation { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 12px; padding: 15px 17px; border-radius: 10px; background: var(--navy); color: #bfc6d8; font-size: 12px; }
.extrema-calculation code { color: #75efd8; font: 600 12px 'DM Mono', monospace; text-align: right; }

.global-challenges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.global-challenges article { padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.global-challenges article > span { color: var(--indigo); font: 700 11px 'DM Mono', monospace; }
.global-challenges h3 { margin: 12px 0 6px; font-size: 19px; }
.global-challenges p { min-height: 70px; margin: 0; color: var(--muted); font-size: 13px; }
.challenge-sketch { position: relative; height: 75px; margin-top: 15px; border-radius: 8px; background: #f4f5f9; overflow: hidden; }
.challenge-sketch i, .challenge-sketch b, .challenge-sketch em { position: absolute; border: 3px solid var(--indigo); border-color: var(--indigo) transparent transparent transparent; border-radius: 50%; }
.challenge-sketch.valleys i { left: -8%; top: 5%; width: 70%; height: 100%; transform: rotate(180deg); }
.challenge-sketch.valleys b { right: -8%; top: 0; width: 70%; height: 115%; transform: rotate(180deg); }
.challenge-sketch.plateau i { left: 10%; top: 42%; width: 80%; height: 5px; border: 0; border-radius: 4px; background: var(--orange); }
.challenge-sketch.noise i { inset: 15% 8%; border: 0; border-radius: 0; background: linear-gradient(145deg, transparent 0 9%, var(--red) 10% 12%, transparent 13% 24%, var(--red) 25% 28%, transparent 29% 43%, var(--red) 44% 47%, transparent 48% 60%, var(--red) 61% 64%, transparent 65%); }
.challenge-sketch.dimension i, .challenge-sketch.dimension b, .challenge-sketch.dimension em { width: 48px; height: 48px; border: 2px solid var(--violet); border-radius: 8px; transform: rotate(30deg); }
.challenge-sketch.dimension i { left: 20%; top: 14px; }.challenge-sketch.dimension b { left: 40%; top: 14px; }.challenge-sketch.dimension em { left: 60%; top: 14px; }
.local-global-bridge { display: grid; grid-template-columns: 1fr auto 1fr auto 1.4fr; gap: 10px; align-items: center; margin-top: 17px; padding: 18px; border-radius: 12px; background: var(--navy); }
.local-global-bridge div { display: grid; padding: 14px; border: 1px solid #46506c; border-radius: 9px; color: #fff; }
.local-global-bridge span { color: #aca6ff; font: 600 9px 'DM Mono', monospace; }
.local-global-bridge strong { margin-top: 6px; font-size: 14px; }
.local-global-bridge > i { color: #75efd8; font-size: 20px; font-style: normal; }
.local-global-bridge .bridge-result { border-color: var(--mint); background: #15423d; }

@media (max-width: 1150px) {
  .extrema-hero { grid-template-columns: 1fr; }
  .extrema-hero-visual { max-width: 720px; }
  .extrema-lab-shell { grid-template-columns: 1fr; }
  .global-challenges { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 800px) {
  .extrema-hero { padding: 38px 26px; }
  .extrema-hero h1 { font-size: 43px; letter-spacing: -1.8px; }
  .extreme-comparison { grid-template-columns: 1fr; }
  .comparison-scope { min-height: 125px; }
  .comparison-scope i { transform: rotate(90deg); }
  .slope-flow { grid-template-columns: 1fr; }
  .slope-flow > i { text-align: center; transform: rotate(90deg); }
  .second-derivative-grid, .candidate-checklist { grid-template-columns: 1fr; }
  .local-global-bridge { grid-template-columns: 1fr; }
  .local-global-bridge > i { text-align: center; }
}
@media (max-width: 580px) {
  .extrema-hero { padding: 30px 20px; }
  .extrema-hero h1 { font-size: 37px; }
  .extrema-hero-visual { padding: 15px; }
  .extrema-metrics, .global-challenges { grid-template-columns: 1fr; }
  .extrema-chart-card { padding: 14px; }
  .extrema-chart-card canvas { min-height: 350px; }
  .extrema-calculation { align-items: flex-start; flex-direction: column; }
  .extrema-calculation code { text-align: left; }
  .global-challenges p { min-height: 0; }
}

/* Subtópico 05 · Contínua e combinatória */
.domain-hero{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center;min-height:510px;padding:58px;border:1px solid #dedff0;border-radius:25px;background:linear-gradient(135deg,#eceaff,#fff 55%,#fff0e8)}
.domain-hero h1{margin:0 0 18px;font-size:clamp(46px,5vw,69px);line-height:1.04;letter-spacing:-3px}.domain-hero .lead{margin:0}.domain-hero-visual{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:stretch;padding:22px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.domain-hero-visual>article{padding:18px;border:1px solid var(--line);border-top:5px solid var(--indigo);border-radius:12px;background:#f9faff}.domain-hero-visual>article:last-child{border-top-color:var(--orange)}.domain-hero-visual article>span{color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.domain-hero-visual>i{align-self:center;color:var(--violet);font:700 22px 'DM Mono';font-style:normal}.domain-hero-visual strong{display:block;margin-top:14px;font:700 14px 'DM Mono'}.domain-hero-visual p{color:var(--muted);font-size:12px}.continuous-line{position:relative;height:75px;margin-top:14px}.continuous-line i{position:absolute;left:0;right:0;top:33px;height:6px;border-radius:5px;background:linear-gradient(90deg,#b9b5ff,var(--indigo),var(--mint))}.continuous-line b{position:absolute;left:62%;top:24px;width:23px;height:23px;border:5px solid #fff;border-radius:50%;background:var(--indigo);box-shadow:0 3px 8px #8a84dc}.permutation-demo{display:flex;align-items:center;justify-content:center;gap:5px;height:75px;margin-top:14px}.permutation-demo b{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#fff0e5;color:#a65328;font:800 11px 'DM Mono'}.permutation-demo i{color:var(--violet);font-style:normal}
.domain-comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.domain-comparison-grid>article{padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff}.domain-chip{display:grid;place-items:center;width:55px;height:55px;border-radius:14px;background:#eceaff;color:var(--indigo);font:800 20px 'DM Mono'}.domain-chip.discrete{background:#fff0e5;color:#b8582e}.domain-comparison-grid h3{margin:16px 0 7px;font-size:23px}.domain-comparison-grid p{color:var(--muted)}.domain-comparison-grid code{display:block;margin-top:14px;padding:10px;border-radius:7px;background:#f2f4f9;font:650 13px 'DM Mono';text-align:center}.continuous-plane,.discrete-plane{position:relative;height:155px;margin-top:17px;border:1px solid #e0e4ed;border-radius:9px;background:linear-gradient(to right,transparent 49.6%,#edf0f5 50%,transparent 50.4%),linear-gradient(to bottom,transparent 49.6%,#edf0f5 50%,transparent 50.4%),#fafbfe}.continuous-plane i{position:absolute;left:8%;top:62%;width:84%;height:4px;background:var(--indigo);transform:rotate(-21deg)}.continuous-plane b,.continuous-plane em{position:absolute;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:var(--orange)}.continuous-plane b{left:30%;top:57%}.continuous-plane em{left:67%;top:31%;background:var(--mint)}.discrete-plane i{position:absolute;width:13px;height:13px;border-radius:50%;background:#a8a4ec}.discrete-plane i:nth-child(1){left:15%;top:23%}.discrete-plane i:nth-child(2){left:35%;top:66%}.discrete-plane i:nth-child(3){left:53%;top:34%}.discrete-plane i:nth-child(4){left:72%;top:71%}.discrete-plane i:nth-child(5){left:84%;top:19%}.discrete-plane i:nth-child(6){left:23%;top:78%}.discrete-plane b{position:absolute;left:48%;top:29%;width:26px;height:26px;border:5px solid #fff;border-radius:50%;background:var(--orange);box-shadow:0 3px 8px #db956d}
.move-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.move-grid article{padding:22px;border:1px solid var(--line);border-top:5px solid var(--indigo);border-radius:13px;background:#fff}.move-grid article:nth-child(2){border-top-color:var(--mint)}.move-grid article:nth-child(3){border-top-color:var(--orange)}.move-grid article:nth-child(4){border-top-color:var(--red)}.move-grid article>span{color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.move-grid h3{margin:9px 0;font-size:19px}.move-grid p{min-height:68px;color:var(--muted);font-size:13px}.move-grid code{display:block;padding:9px;border-radius:7px;background:#f1f3f8;font:650 12px 'DM Mono';text-align:center}.move-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center;margin:15px 0;padding:12px;border-radius:8px;background:#f4f5f9;text-align:center}.move-flow b,.move-flow strong{font:700 12px 'DM Mono'}.move-flow i{color:var(--violet);font-size:10px;font-style:normal}.move-flow span{color:var(--red)}
.growth-table{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.growth-table>div{display:grid;grid-template-columns:.6fr 1fr 1.2fr 1.2fr;gap:10px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.growth-table>div:last-child{border:0}.growth-table .growth-head{background:var(--navy);color:#fff;font-size:12px;font-weight:800}.growth-table b{color:var(--indigo);font:750 14px 'DM Mono'}.growth-table strong{font:650 13px 'DM Mono'}.growth-table div>span:last-child{color:var(--muted);font-size:13px}
.domain-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;padding:7px;border:1px solid var(--line);border-radius:11px;background:#fff}.domain-tabs button{padding:12px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.domain-tabs button.active{background:var(--indigo);color:#fff}.domain-lab-panel{display:none;grid-template-columns:290px 1fr;gap:17px}.domain-lab-panel.active{display:grid}.domain-lab-controls{align-self:start;display:grid;gap:13px;padding:21px;border:1px solid var(--line);border-radius:13px;background:#fff}.domain-lab-controls label{display:grid;grid-template-columns:1fr auto;color:var(--muted);font-size:12px;font-weight:800}.domain-lab-controls output{color:var(--indigo);font:700 14px 'DM Mono'}.domain-lab-controls input{width:100%;accent-color:var(--indigo)}.domain-lab-controls code{padding:12px;border-radius:8px;background:#f1f3f8;font:650 12px/1.6 'DM Mono';text-align:center}.compact-metrics{margin-bottom:14px}.compact-metrics strong{font-size:14px}.route-control-title{color:var(--muted);font-size:12px;font-weight:800}.route-order{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.route-order button{display:grid;place-items:center;width:37px;height:37px;border:2px solid #e68145;border-radius:8px;background:#fff;color:#a65328;font-weight:850;cursor:pointer}.route-order i{color:var(--violet);font-style:normal}.domain-lab-panel canvas{display:block;width:100%;height:auto;border:1px solid #e2e6ef;border-radius:9px}.representation-checklist{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.representation-checklist article{padding:22px;border:1px solid var(--line);border-radius:13px;background:#fff}.representation-checklist span{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#eceaff;color:var(--indigo);font:750 12px 'DM Mono'}.representation-checklist h3{margin:14px 0 7px;font-size:18px}.representation-checklist p{margin:0;color:var(--muted);font-size:13px}.dual-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dual-code-grid pre{margin:0;padding:24px;color:#e8ecf7;overflow:auto;font:500 14px/1.85 'DM Mono'}
@media(max-width:1100px){.domain-hero{grid-template-columns:1fr}.domain-hero-visual{max-width:750px}.move-grid,.representation-checklist{grid-template-columns:1fr 1fr}.domain-lab-panel.active{grid-template-columns:1fr}}
@media(max-width:760px){.domain-hero{padding:38px 25px}.domain-hero h1{font-size:42px;letter-spacing:-1.7px}.domain-hero-visual,.domain-comparison-grid,.dual-code-grid{grid-template-columns:1fr}.domain-hero-visual>i{text-align:center}.move-grid{grid-template-columns:1fr}.growth-table{overflow:auto}.growth-table>div{min-width:650px}.domain-tabs{grid-template-columns:1fr}.representation-checklist{grid-template-columns:1fr}}
@media(max-width:580px){.domain-hero{padding:30px 20px}.domain-hero h1{font-size:37px}.compact-metrics{grid-template-columns:1fr}}

/* Subtópico 06 · Métodos exatos, heurísticos e metaheurísticos */
.methods-hero{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;min-height:510px;padding:58px;border:1px solid #dedff0;border-radius:25px;background:linear-gradient(135deg,#fff0e7,#fff 54%,#e8faf5)}.methods-hero h1{margin:0 0 18px;font-size:clamp(47px,5vw,70px);line-height:1.04;letter-spacing:-3px}.methods-hero .lead{margin:0}.methods-hero-visual{display:grid;gap:10px;padding:21px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.methods-hero-visual article{display:grid;grid-template-columns:120px 1fr;gap:4px 15px;align-items:center;padding:16px;border-left:5px solid var(--indigo);border-radius:0 10px 10px 0;background:#f5f6fa}.methods-hero-visual article:nth-child(2){border-left-color:var(--orange)}.methods-hero-visual article:nth-child(3){border-left-color:var(--mint)}.methods-hero-visual span{grid-row:1;color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.methods-hero-visual strong{grid-row:2/4;font-size:24px}.methods-hero-visual p{grid-column:2;margin:0;color:var(--muted);font-size:12px}.methods-hero-visual i{grid-column:2;color:#12836e;font-size:10px;font-style:normal;font-weight:800}
.method-family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.method-family-grid article{padding:24px;border:1px solid var(--line);border-top:6px solid var(--indigo);border-radius:14px;background:#fff}.method-family-grid .heuristic-family{border-top-color:var(--orange)}.method-family-grid .meta-family{border-top-color:var(--mint)}.method-family-grid article>span{color:var(--indigo);font:650 10px 'DM Mono';letter-spacing:.8px}.method-family-grid h3{margin:13px 0 8px;font-size:23px}.method-family-grid p{color:var(--muted)}.method-family-grid ul{padding-left:20px;color:#4f5a72;font-size:14px}.method-family-grid li{margin:7px 0}.method-family-grid code{display:block;margin-top:14px;padding:11px;border-radius:8px;background:#f2f4f9;font:600 11px/1.6 'DM Mono'}
.tradeoff-map{display:grid;gap:14px}.tradeoff-intro{display:grid;grid-template-columns:auto 1fr;gap:5px 15px;align-items:baseline;padding:16px 20px;border:1px solid var(--line);border-radius:13px;background:#fff}.tradeoff-intro>span{color:var(--indigo);font:700 10px 'DM Mono';letter-spacing:.8px}.tradeoff-intro strong{font-size:16px}.tradeoff-intro p{grid-column:2;margin:0;color:var(--muted);font-size:12px}.tradeoff-visual{display:grid;grid-template-columns:128px minmax(0,1fr);gap:14px}.tradeoff-y{display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:12px 0 12px 12px;color:var(--muted);font-size:11px;font-weight:800}.tradeoff-y strong{color:var(--navy);font-size:12px}.tradeoff-y span{line-height:1.35}.tradeoff-y span:last-child{align-self:end}.tradeoff-y i{position:relative;display:block;width:3px;margin:0 0 0 9px;border-radius:5px;background:linear-gradient(var(--indigo),var(--mint));}.tradeoff-y i::before{content:'';position:absolute;top:-2px;left:-4px;border-right:5px solid transparent;border-bottom:7px solid var(--indigo);border-left:5px solid transparent}.tradeoff-plane{position:relative;min-height:360px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,rgba(25,185,154,.11),transparent 44%,rgba(230,129,69,.12)),#fff}.tradeoff-plane::before,.tradeoff-plane::after{content:'';position:absolute;background:#dfe4ed}.tradeoff-plane::before{left:50%;top:0;bottom:0;width:1px}.tradeoff-plane::after{left:0;right:0;top:50%;height:1px}.tradeoff-zone{position:absolute;display:grid;gap:3px;color:#6a7488;font-size:10px}.tradeoff-zone strong{color:#44506a;font-size:11px}.tradeoff-zone span{font-weight:700}.zone-critical{top:20px;right:23px;text-align:right}.zone-fast{bottom:19px;left:22px}.zone-balance{bottom:17px;right:21px;text-align:right}.tradeoff-plane article{position:absolute;z-index:1;display:flex;align-items:center;gap:9px}.tradeoff-plane b{display:grid;flex:0 0 auto;place-items:center;width:49px;height:49px;border:4px solid #fff;border-radius:50%;background:var(--indigo);color:#fff;font:800 16px 'DM Mono';box-shadow:0 8px 18px rgba(40,49,79,.2)}.tradeoff-plane article>div{display:grid;gap:1px}.tradeoff-plane article strong{color:var(--navy);font-size:14px}.tradeoff-plane article span{color:#4f5a72;font-size:11px;font-weight:800}.tradeoff-plane article small{color:#818ba0;font-size:10px;font-weight:700}.point-exact{right:14%;top:26%}.point-heuristic{bottom:26%;left:12%}.point-meta{top:50%;left:42%;transform:translateY(-50%)}.point-heuristic b{background:var(--orange)}.point-meta b{background:var(--mint)}.tradeoff-x{display:flex;align-items:center;gap:12px;margin-left:142px;color:var(--muted);font-size:11px;font-weight:800}.tradeoff-x i{position:relative;flex:1;height:3px;border-radius:5px;background:linear-gradient(90deg,var(--mint),var(--orange))}.tradeoff-x i::after{content:'';position:absolute;right:-1px;top:-3px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid var(--orange)}
.route-method-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.route-method-flow article{padding:23px;border:1px solid var(--line);border-radius:14px;background:#fff}.route-method-flow article>span{color:var(--indigo);font:650 10px 'DM Mono'}.route-method-flow h3{margin:15px 0 7px;font-size:20px}.route-method-flow p{color:var(--muted);font-size:14px}.route-cloud,.route-rule,.route-cycle{display:grid;place-items:center;height:115px;margin-top:15px;border-radius:10px;background:#eceaff;color:var(--indigo);font:750 18px 'DM Mono'}.route-rule{background:#fff0e5;color:#b8582e}.route-cycle{background:#e5f9f3;color:#12836e}
.methods-lab-controls{display:grid;grid-template-columns:1.2fr 1.3fr auto auto;gap:12px;align-items:end;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.methods-lab-controls label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.methods-lab-controls select{height:43px;padding:0 10px;border:1px solid #cfd5e2;border-radius:8px;background:#fff;font-weight:700}.methods-lab-controls output{color:var(--indigo);font:700 13px 'DM Mono'}.methods-lab-controls input{width:100%;accent-color:var(--indigo)}.method-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:13px 0}.method-metrics article{padding:14px;border:1px solid var(--line);border-top:4px solid var(--indigo);border-radius:9px;background:#fff}.method-metrics article:nth-child(2){border-top-color:var(--mint)}.method-metrics article:nth-child(3){border-top-color:var(--orange)}.method-metrics article:nth-child(4){border-top-color:var(--red)}.method-metrics span,.method-metrics strong{display:block}.method-metrics span{color:var(--muted);font-size:10px;font-weight:800}.method-metrics strong{margin-top:4px;font:700 15px 'DM Mono'}.method-lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.method-lab-grid canvas{display:block;width:100%;border:1px solid #e3e7ef;border-radius:8px}.decision-matrix{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.decision-matrix>div{display:grid;grid-template-columns:1.1fr 180px 1.4fr;gap:15px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.decision-matrix>div:last-child{border:0}.decision-matrix .matrix-head{background:var(--navy);color:#fff;font-size:12px;font-weight:800}.decision-matrix b{justify-self:start;padding:6px 9px;border-radius:6px;background:#f0eff5;color:#5f5872;font-size:11px}.decision-matrix .exact-tag{background:#eceaff;color:var(--indigo)}.decision-matrix .heuristic-tag{background:#fff0e5;color:#b8582e}.decision-matrix .meta-tag{background:#e5f9f3;color:#12836e}.decision-matrix p{margin:0;color:var(--muted);font-size:13px}.fair-comparison{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.3fr;gap:10px;align-items:center;padding:18px;border-radius:12px;background:var(--navy)}.fair-comparison article{display:grid;padding:14px;border:1px solid #46506c;border-radius:9px;color:#fff}.fair-comparison span{color:#aaa4ff;font:650 9px 'DM Mono'}.fair-comparison strong{margin-top:6px;font-size:13px}.fair-comparison>i{color:#75efd8;font-style:normal}.fair-comparison .fair-result{border-color:var(--mint);background:#15423d}
@media(max-width:1100px){.methods-hero{grid-template-columns:1fr}.methods-hero-visual{max-width:700px}.methods-lab-controls{grid-template-columns:1fr 1fr}.method-lab-grid{grid-template-columns:1fr}}
@media(max-width:800px){.methods-hero{padding:38px 25px}.methods-hero h1{font-size:43px;letter-spacing:-1.8px}.method-family-grid,.route-method-flow{grid-template-columns:1fr}.tradeoff-intro{grid-template-columns:1fr;gap:6px}.tradeoff-intro p{grid-column:auto}.tradeoff-visual{grid-template-columns:94px minmax(0,1fr);gap:8px}.tradeoff-y{padding-left:0;font-size:10px}.tradeoff-x{margin-left:102px}.methods-lab-controls,.method-metrics{grid-template-columns:1fr}.decision-matrix{overflow:auto}.decision-matrix>div{min-width:700px}.fair-comparison{grid-template-columns:1fr}.fair-comparison>i{text-align:center}}
@media(max-width:580px){.methods-hero{padding:30px 20px}.methods-hero h1{font-size:37px}.methods-hero-visual article{grid-template-columns:95px 1fr}.tradeoff-visual{grid-template-columns:1fr}.tradeoff-y{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0}.tradeoff-y strong{grid-column:1/-1}.tradeoff-y i{display:none}.tradeoff-y span{font-size:9px}.tradeoff-y span:last-child{justify-self:end;text-align:right}.tradeoff-plane{min-height:410px}.tradeoff-x{margin-left:0;font-size:9px}.tradeoff-plane article{max-width:145px;gap:6px}.tradeoff-plane b{width:39px;height:39px;font-size:13px}.tradeoff-plane article strong{font-size:12px}.tradeoff-plane article span,.tradeoff-plane article small{font-size:9px}.point-exact{right:5%;top:22%}.point-heuristic{bottom:21%;left:5%}.point-meta{top:52%;left:28%}.tradeoff-zone{display:none}}

/* Fundamentos de Metaheurísticas 01 · Solução e população */
.population-hero{display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center;min-height:510px;padding:58px;border:1px solid #dce2ee;border-radius:25px;background:linear-gradient(135deg,#e8faf5,#fff 55%,#eceaff)}.population-hero h1{margin:0 0 18px;font-size:clamp(45px,4.8vw,68px);line-height:1.04;letter-spacing:-3px}.population-hero .lead{margin:0}.population-hero-visual{padding:23px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.population-space{position:relative;height:280px;border-radius:12px;background:radial-gradient(circle at 67% 35%,#e8f8b7,transparent 16%),radial-gradient(circle at 65% 38%,#62d2aa,transparent 38%),linear-gradient(135deg,#403974,#5663b9);overflow:hidden}.population-space i,.population-space b{position:absolute;width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:#e68145}.population-space b{left:65%;top:34%;width:23px;height:23px;background:#df5b70;box-shadow:0 0 0 7px rgba(255,255,255,.2)}.population-caption{display:flex;gap:18px;margin-top:12px;color:var(--muted);font-size:11px;font-weight:800}.population-caption i,.population-caption b{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;background:var(--orange)}.population-caption b{background:var(--red)}.population-hero-visual code{display:block;margin-top:13px;padding:11px;border-radius:8px;background:#f1f3f8;font:650 13px 'DM Mono';text-align:center}
.candidate-anatomy{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:stretch}.candidate-anatomy article{padding:21px;border:1px solid var(--line);border-radius:13px;background:#fff}.candidate-anatomy span{color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.candidate-anatomy strong{display:block;margin-top:14px;font-size:18px}.candidate-anatomy p{color:var(--muted);font-size:13px}.candidate-anatomy>i{align-self:center;color:var(--violet);font-size:21px;font-style:normal}
.individual-population-comparison{display:grid;grid-template-columns:1fr 90px 1fr;gap:15px}.individual-population-comparison>article{padding:24px;border:1px solid var(--line);border-top:5px solid var(--orange);border-radius:14px;background:#fff}.individual-population-comparison>article:last-child{border-top-color:var(--mint)}.individual-population-comparison article>span{color:var(--indigo);font:650 10px 'DM Mono'}.single-candidate{display:grid;place-items:center;width:90px;height:90px;margin:22px auto;border-radius:50%;background:#fff0e5;color:#b8582e;font:800 30px 'DM Mono'}.many-candidates{display:flex;align-items:center;justify-content:center;gap:8px;height:134px}.many-candidates i{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#e3f8f2;color:#12836e;font:700 11px 'DM Mono';font-style:normal}.many-candidates i:nth-child(2n){transform:translateY(-20px)}.individual-population-comparison h3{font-size:22px}.individual-population-comparison p{color:var(--muted)}.individual-population-comparison code{display:block;padding:10px;border-radius:7px;background:#f2f4f9;font:600 11px 'DM Mono';text-align:center}.population-versus{display:grid;place-items:center;border-radius:13px;background:var(--navy);color:#75efd8;font:700 21px 'DM Mono'}
.fitness-pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.fitness-pipeline article{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.fitness-pipeline article.best{border:3px solid var(--mint);background:#effbf7}.fitness-pipeline span{color:var(--indigo);font:700 11px 'DM Mono'}.fitness-pipeline strong{font:650 14px 'DM Mono';text-align:right}.fitness-pipeline i{color:var(--muted);font-size:11px;font-style:normal}.fitness-pipeline b{color:#12836e;font:800 23px 'DM Mono';text-align:right}.fitness-note{display:grid;grid-template-columns:130px 1fr;gap:5px 20px;align-items:center;margin-top:15px;padding:19px;border-radius:12px;background:var(--navy);color:#fff}.fitness-note strong{grid-row:1/3;color:#75efd8;font:750 25px 'DM Mono';text-align:center}.fitness-note p{margin:0;color:#bdc5d6}.fitness-note code{font:600 13px 'DM Mono'}
.population-cycle{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto;gap:9px;align-items:center}.population-cycle article{min-height:180px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.population-cycle span{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#eceaff;color:var(--indigo);font:750 12px 'DM Mono'}.population-cycle h3{margin:13px 0 6px;font-size:18px}.population-cycle p{margin:0;color:var(--muted);font-size:13px}.population-cycle>i{color:var(--violet);font-style:normal;font-size:20px}
.population-lab-shell{display:grid;grid-template-columns:310px 1fr;gap:18px}.population-controls{display:block}.population-controls>label{margin-top:19px}.population-controls>input{width:100%;accent-color:var(--indigo)}.population-metrics article:nth-child(1){border-top-color:var(--violet)}.population-metrics article:nth-child(2){border-top-color:var(--mint)}.population-metrics article:nth-child(3){border-top-color:var(--orange)}.population-metrics article:nth-child(4){border-top-color:var(--red)}.population-metrics strong{font-size:16px}.population-chart-card canvas{display:block;width:100%;min-height:430px;border-radius:8px;cursor:default}.population-indicators{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.population-indicators article{padding:22px;border:1px solid var(--line);border-top:5px solid var(--indigo);border-radius:12px;background:#fff}.population-indicators article:nth-child(2){border-top-color:var(--mint)}.population-indicators article:nth-child(3){border-top-color:var(--orange)}.population-indicators article:nth-child(4){border-top-color:var(--red)}.population-indicators span{color:var(--indigo);font:650 9px 'DM Mono';text-transform:uppercase}.population-indicators strong{display:block;margin-top:12px;font-size:17px}.population-indicators p{color:var(--muted);font-size:13px}
@media(max-width:1100px){.population-hero{grid-template-columns:1fr}.population-hero-visual{max-width:700px}.population-lab-shell{grid-template-columns:1fr}.population-indicators{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.population-hero{padding:38px 25px}.population-hero h1{font-size:42px;letter-spacing:-1.8px}.candidate-anatomy,.population-cycle{grid-template-columns:1fr}.candidate-anatomy>i,.population-cycle>i{text-align:center;transform:rotate(90deg)}.individual-population-comparison{grid-template-columns:1fr}.population-versus{min-height:80px}.fitness-pipeline{grid-template-columns:1fr 1fr}.fitness-note{grid-template-columns:1fr}.fitness-note strong{text-align:left}.population-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.population-hero{padding:30px 20px}.population-hero h1{font-size:36px}.fitness-pipeline,.population-indicators,.population-metrics{grid-template-columns:1fr}.population-space{height:240px}}

/* Fundamentos de Metaheurísticas 02 · Exploração e intensificação */
.balance-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;min-height:510px;padding:58px;border:1px solid #dedff0;border-radius:25px;background:linear-gradient(135deg,#eceaff,#fff 53%,#e8faf5)}.balance-hero h1{margin:0 0 18px;font-size:clamp(45px,4.8vw,68px);line-height:1.04;letter-spacing:-3px}.balance-hero .lead{margin:0}.balance-hero-visual{display:grid;grid-template-columns:1fr 65px 1fr;gap:12px;align-items:center;padding:22px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.balance-side{position:relative;height:260px;padding:17px;border-radius:12px;background:#f4f5fa}.balance-side>span{color:var(--indigo);font:650 9px 'DM Mono'}.balance-side>strong{position:absolute;bottom:15px;left:0;right:0;text-align:center}.balance-side.explore>i{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--orange)}.balance-side.explore>i:nth-child(2){left:17%;top:31%}.balance-side.explore>i:nth-child(3){left:68%;top:24%}.balance-side.explore>i:nth-child(4){left:38%;top:57%}.balance-side.explore>i:nth-child(5){left:78%;top:64%}.balance-side.explore>i:nth-child(6){left:23%;top:72%}.balance-side.exploit>div{position:absolute;inset:55px 20px 45px;border:2px dashed #79d6c4;border-radius:50%}.balance-side.exploit i{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--mint)}.balance-side.exploit i:nth-child(1){left:46%;top:42%}.balance-side.exploit i:nth-child(2){left:58%;top:49%}.balance-side.exploit i:nth-child(3){left:39%;top:57%}.balance-side.exploit i:nth-child(4){left:52%;top:64%}.balance-side.exploit i:nth-child(5){left:65%;top:37%}.balance-scale{display:grid;place-items:center}.balance-scale i{width:5px;height:150px;border-radius:5px;background:linear-gradient(var(--orange),var(--mint))}.balance-scale b{width:31px;height:31px;margin-bottom:-90px;border:5px solid #fff;border-radius:50%;background:var(--violet);z-index:1;box-shadow:0 4px 10px #8a84d8}
.force-comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px}.force-comparison article{padding:24px;border:1px solid var(--line);border-top:6px solid var(--orange);border-radius:14px;background:#fff}.force-comparison article:last-child{border-top-color:var(--mint)}.force-comparison article>span{color:var(--indigo);font:650 10px 'DM Mono'}.force-comparison h3{font-size:23px}.force-comparison ul{color:#525d74}.force-comparison li{margin:8px 0}.force-map{position:relative;height:150px;border-radius:10px;background:#f5f6fa}.force-map i{position:absolute;width:15px;height:15px;border-radius:50%;background:var(--orange)}.force-map.scattered i:nth-child(1){left:12%;top:25%}.force-map.scattered i:nth-child(2){left:35%;top:70%}.force-map.scattered i:nth-child(3){left:55%;top:18%}.force-map.scattered i:nth-child(4){left:80%;top:63%}.force-map.scattered i:nth-child(5){left:67%;top:47%}.force-map.scattered i:nth-child(6){left:20%;top:55%}.force-map.clustered{background:radial-gradient(circle,#e4f9f3,transparent 45%),#f5f6fa}.force-map.clustered i{background:var(--mint)}.force-map.clustered i:nth-child(1){left:45%;top:42%}.force-map.clustered i:nth-child(2){left:52%;top:51%}.force-map.clustered i:nth-child(3){left:41%;top:58%}.force-map.clustered i:nth-child(4){left:58%;top:39%}.force-map.clustered i:nth-child(5){left:49%;top:65%}.force-map.clustered i:nth-child(6){left:62%;top:57%}
.imbalance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.imbalance-grid article{padding:23px;border:1px solid var(--line);border-radius:13px;background:#fff}.imbalance-grid article>span{color:var(--indigo);font:650 9px 'DM Mono'}.imbalance-grid h3{font-size:20px}.imbalance-grid p{min-height:85px;color:var(--muted);font-size:14px}.imbalance-grid code{display:block;padding:10px;border-radius:7px;background:#f1f3f8;font:600 11px 'DM Mono';text-align:center}.imbalance-gauge{height:10px;margin:17px 0;border-radius:6px;background:#edf0f5;overflow:hidden}.imbalance-gauge b{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--orange))}.mechanism-table{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.mechanism-table>div{display:grid;grid-template-columns:1fr 1.3fr 1.3fr;gap:15px;padding:16px 20px;border-bottom:1px solid var(--line)}.mechanism-table>div:last-child{border:0}.mechanism-table .mechanism-head{background:var(--navy);color:#fff;font-weight:800}.mechanism-table p{margin:0;color:var(--muted);font-size:13px}
.balance-lab-shell{display:grid;grid-template-columns:310px 1fr;gap:18px}.balance-controls{display:block}.balance-controls>label{margin-top:18px}.balance-controls>input{width:100%;accent-color:var(--indigo)}.balance-labels{display:flex;justify-content:space-between;color:#8a94a8;font-size:9px;font-weight:800}.balance-metrics article:nth-child(1){border-top-color:var(--violet)}.balance-metrics article:nth-child(2){border-top-color:var(--mint)}.balance-metrics article:nth-child(3){border-top-color:var(--orange)}.balance-metrics article:nth-child(4){border-top-color:var(--red)}.balance-metrics strong{font-size:16px}.balance-chart-card canvas{display:block;width:100%;min-height:430px;border-radius:8px}.dynamic-balance{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:center}.dynamic-balance article{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.dynamic-balance span{color:var(--indigo);font:650 9px 'DM Mono'}.dynamic-balance strong{display:block;margin:11px 0;font-size:18px}.dynamic-balance p{color:var(--muted);font-size:13px}.dynamic-balance>i{color:var(--violet);font-style:normal}.dynamic-bar{height:9px;border-radius:5px;background:#edf0f5;overflow:hidden}.dynamic-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--mint))}
@media(max-width:1100px){.balance-hero{grid-template-columns:1fr}.balance-hero-visual{max-width:720px}.balance-lab-shell{grid-template-columns:1fr}}
@media(max-width:800px){.balance-hero{padding:38px 25px}.balance-hero h1{font-size:42px;letter-spacing:-1.8px}.force-comparison,.imbalance-grid{grid-template-columns:1fr}.mechanism-table{overflow:auto}.mechanism-table>div{min-width:650px}.dynamic-balance{grid-template-columns:1fr}.dynamic-balance>i{text-align:center;transform:rotate(90deg)}.balance-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.balance-hero{padding:30px 20px}.balance-hero h1{font-size:36px}.balance-hero-visual{grid-template-columns:1fr}.balance-scale{display:none}.balance-metrics{grid-template-columns:1fr}}

/* Fundamentos de Metaheurísticas 03 · Critérios de parada */
.stopping-hero{display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center;min-height:510px;padding:58px;border:1px solid #e1dce8;border-radius:25px;background:linear-gradient(135deg,#fff0e7,#fff 55%,#eceaff)}
.stopping-hero h1{margin:0 0 18px;font-size:clamp(46px,4.9vw,69px);line-height:1.04;letter-spacing:-3px}.stopping-hero .lead{margin:0}.stopping-hero-visual{position:relative;padding:42px 28px 28px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}
.progress-track{position:relative;height:12px;margin:34px 8px 54px;border-radius:8px;background:#edf0f5}.progress-track i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--mint),var(--orange),var(--red))}.progress-track b{position:absolute;top:50%;width:25px;height:25px;border:5px solid #fff;border-radius:50%;background:var(--red);box-shadow:0 4px 12px rgba(182,54,78,.28);transform:translate(-50%,-50%)}
.stop-sign{display:flex;align-items:center;justify-content:center;gap:12px;width:174px;margin:0 auto 28px;padding:17px;border:4px solid #fff;border-radius:14px;background:var(--red);color:#fff;box-shadow:0 10px 25px rgba(182,54,78,.22);font:800 19px 'DM Mono'}.stop-sign>span{letter-spacing:1px}.stop-reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stop-reasons span{padding:13px 8px;border-radius:9px;background:#f4f5f9;color:var(--muted);font-size:10px;font-weight:800;text-align:center}.stop-reasons i{display:block;margin-bottom:4px;color:var(--navy);font:800 15px 'DM Mono';font-style:normal}
.stopping-criteria-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stopping-criteria-grid article{padding:23px;border:1px solid var(--line);border-top:5px solid var(--violet);border-radius:13px;background:#fff}.stopping-criteria-grid article:nth-child(2){border-top-color:var(--mint)}.stopping-criteria-grid article:nth-child(3){border-top-color:var(--orange)}.stopping-criteria-grid article:nth-child(4){border-top-color:var(--red)}.stopping-criteria-grid article>div{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#eceaff;color:var(--indigo);font:800 19px 'DM Mono'}.stopping-criteria-grid article>span{display:block;margin-top:15px;color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.stopping-criteria-grid h3{margin:8px 0;font-size:19px}.stopping-criteria-grid p{min-height:62px;color:var(--muted);font-size:13px}.stopping-criteria-grid code{display:block;padding:9px;border-radius:7px;background:#f1f3f8;font:650 11px 'DM Mono';text-align:center}
.stop-logic{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.35fr;gap:10px;align-items:center;padding:18px;border-radius:13px;background:var(--navy)}.stop-logic article{display:grid;padding:15px;border:1px solid #46506c;border-radius:9px;color:#fff}.stop-logic span{color:#aaa4ff;font:650 9px 'DM Mono'}.stop-logic strong{margin-top:6px;font-size:14px}.stop-logic>i{color:#75efd8;font-style:normal}.stop-logic .stop-result{border-color:#ef758b;background:#57283a}.stop-logic .stop-result span{color:#ffb6c3}
.stop-timing{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stop-timing article{padding:23px;border:1px solid var(--line);border-radius:13px;background:#fff}.stop-timing article>span{color:var(--indigo);font:650 9px 'DM Mono'}.stop-timing h3{margin:18px 0 8px;font-size:20px}.stop-timing p{color:var(--muted);font-size:13px}.timing-curve{position:relative;height:75px;margin-top:18px;border-bottom:2px solid #dfe4ed;overflow:hidden}.timing-curve i{position:absolute;left:0;right:0;bottom:-20px;height:70px;border-top:5px solid var(--indigo);border-radius:50% 50% 0 0;transform:skewX(-18deg)}.timing-curve b{position:absolute;bottom:16px;width:19px;height:19px;border:4px solid #fff;border-radius:50%;background:var(--orange);box-shadow:0 3px 8px #d9a082}.good-stop .timing-curve b{background:var(--mint)}.late-stop .timing-curve b{background:var(--red)}
.stopping-lab-shell{display:grid;grid-template-columns:310px 1fr;gap:18px}.stopping-controls{display:block}.stopping-controls>label{margin-top:18px}.stopping-controls>input{width:100%;accent-color:var(--indigo)}.stop-metrics article:nth-child(1){border-top-color:var(--violet)}.stop-metrics article:nth-child(2){border-top-color:var(--mint)}.stop-metrics article:nth-child(3){border-top-color:var(--orange)}.stop-metrics article:nth-child(4){border-top-color:var(--red)}.stop-metrics strong{font-size:16px}.stopping-chart-card canvas{display:block;width:100%;min-height:350px;border-radius:8px}.criterion-monitor{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.criterion-monitor article{position:relative;overflow:hidden;padding:14px;border:1px solid var(--line);border-radius:9px;background:#fff}.criterion-monitor span,.criterion-monitor strong{position:relative;z-index:1;display:block}.criterion-monitor span{color:var(--muted);font-size:9px;font-weight:800}.criterion-monitor strong{margin-top:5px;font:700 12px 'DM Mono'}.criterion-monitor i{position:absolute;left:0;bottom:0;height:4px;background:var(--violet);transition:width .2s}.criterion-monitor article:nth-child(2) i{background:var(--mint)}.criterion-monitor article:nth-child(3) i{background:var(--orange)}.criterion-monitor article.reached{border-color:var(--red);background:#fff1f4}.criterion-monitor article.reached i{height:6px;background:var(--red)}
.context-stop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.context-stop-grid article{padding:22px;border:1px solid var(--line);border-radius:13px;background:#fff}.context-stop-grid span{color:var(--indigo);font:650 9px 'DM Mono'}.context-stop-grid strong{display:block;margin:12px 0 8px;font-size:18px}.context-stop-grid p{margin:0;color:var(--muted);font-size:13px}
@media(max-width:1100px){.stopping-hero{grid-template-columns:1fr}.stopping-hero-visual{max-width:720px}.stopping-criteria-grid,.context-stop-grid{grid-template-columns:1fr 1fr}.stopping-lab-shell{grid-template-columns:1fr}}
@media(max-width:800px){.stopping-hero{padding:38px 25px}.stopping-hero h1{font-size:42px;letter-spacing:-1.8px}.stop-logic{grid-template-columns:1fr}.stop-logic>i{text-align:center}.stop-timing{grid-template-columns:1fr}.criterion-monitor{grid-template-columns:1fr}}
@media(max-width:580px){.stopping-hero{padding:30px 20px}.stopping-hero h1{font-size:36px}.stop-reasons,.stopping-criteria-grid,.context-stop-grid{grid-template-columns:1fr}.stopping-hero-visual{padding:28px 17px}.stop-sign{width:auto}.stop-metrics{grid-template-columns:1fr}}

/* Fundamentos de Metaheurísticas 04 · Convergência e diversidade */
.convergence-hero{display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center;min-height:510px;padding:58px;border:1px solid #dce2ee;border-radius:25px;background:linear-gradient(135deg,#eceaff,#fff 53%,#e7faf4)}
.convergence-hero h1{margin:0 0 18px;font-size:clamp(45px,4.8vw,67px);line-height:1.04;letter-spacing:-3px}.convergence-hero .lead{margin:0}.convergence-hero-visual{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:21px;border:1px solid #d9ddea;border-radius:18px;background:#fff;box-shadow:var(--shadow)}.convergence-hero-visual>b{color:var(--violet);font:800 20px 'DM Mono'}.convergence-stage{padding:16px;border:1px solid var(--line);border-radius:11px;background:#f8f9fc}.convergence-stage>span{color:var(--indigo);font:650 9px 'DM Mono';letter-spacing:.8px}.convergence-stage>strong{display:block;margin-top:11px;font-size:13px}.convergence-stage>div{position:relative;height:170px;margin-top:12px;border-radius:8px;background:radial-gradient(circle at 72% 30%,#baf1df,transparent 28%),linear-gradient(135deg,#d8d5ff,#f4f5f9)}.convergence-stage i{position:absolute;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:var(--orange)}.scattered-stage i:nth-child(1){left:10%;top:20%}.scattered-stage i:nth-child(2){left:32%;top:68%}.scattered-stage i:nth-child(3){left:55%;top:18%}.scattered-stage i:nth-child(4){left:78%;top:67%}.scattered-stage i:nth-child(5){left:67%;top:42%}.scattered-stage i:nth-child(6){left:20%;top:48%}.scattered-stage i:nth-child(7){left:45%;top:82%}.clustered-stage i{background:var(--mint)}.clustered-stage i:nth-child(1){left:60%;top:25%}.clustered-stage i:nth-child(2){left:67%;top:34%}.clustered-stage i:nth-child(3){left:73%;top:27%}.clustered-stage i:nth-child(4){left:62%;top:42%}.clustered-stage i:nth-child(5){left:77%;top:43%}.clustered-stage i:nth-child(6){left:70%;top:51%}.clustered-stage i:nth-child(7){left:82%;top:31%}
.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.signal-grid article{padding:25px;border:1px solid var(--line);border-top:6px solid var(--indigo);border-radius:14px;background:#fff}.signal-grid article:last-child{border-top-color:var(--mint)}.signal-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:13px;background:#eceaff;color:var(--indigo);font:800 22px 'DM Mono'}.signal-icon.diversity-icon{background:#e5f9f3;color:#12836e}.signal-grid article>span{display:block;margin-top:16px;color:var(--indigo);font:650 9px 'DM Mono'}.signal-grid h3{margin:8px 0;font-size:23px}.signal-grid p{color:var(--muted)}.signal-grid code{display:block;margin-top:16px;padding:11px;border-radius:8px;background:#f1f3f8;font:650 12px 'DM Mono';text-align:center}
.diagnosis-matrix{display:grid;grid-template-columns:72px 1fr;grid-template-rows:440px 58px;gap:10px}.diagnosis-plane{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--line)}.diagnosis-plane article{display:flex;flex-direction:column;justify-content:center;padding:26px;background:#fff}.diagnosis-plane article>span{color:var(--indigo);font:650 9px 'DM Mono'}.diagnosis-plane strong{margin:10px 0;font-size:17px}.diagnosis-plane p{margin:0;color:var(--muted);font-size:13px}.diagnosis-plane .warning-state{background:#fff1f4}.diagnosis-plane .warning-state>span{color:var(--red)}.diagnosis-plane .success-state{background:#eafaf5}.diagnosis-plane .success-state>span{color:#087c66}.matrix-axis{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;font-weight:800}.matrix-axis i{flex:1;background:linear-gradient(90deg,var(--orange),var(--mint))}.diversity-axis{grid-row:1;flex-direction:column;writing-mode:vertical-rl}.diversity-axis i{width:3px;margin:10px 0;background:linear-gradient(var(--orange),var(--mint))}.quality-axis{grid-column:2}.quality-axis i{height:3px;margin:0 10px}
.premature-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.15fr;gap:10px;align-items:stretch}.premature-flow article{padding:21px;border:1px solid var(--line);border-radius:12px;background:#fff}.premature-flow article>span{color:var(--indigo);font:700 10px 'DM Mono'}.premature-flow strong{display:block;margin:11px 0 7px;font-size:16px}.premature-flow p{margin:0;color:var(--muted);font-size:12px}.premature-flow>i{align-self:center;color:var(--violet);font-style:normal}.premature-flow .premature-result{border-color:#efbbc4;background:#fff1f4}.premature-flow .premature-result>span{color:var(--red)}
.convergence-lab-shell{display:grid;grid-template-columns:310px 1fr;gap:18px}.convergence-controls{display:block}.convergence-controls>label{margin-top:18px}.convergence-controls>input{width:100%;accent-color:var(--indigo)}.control-scale{display:flex;justify-content:space-between;color:#8a94a8;font-size:9px;font-weight:800}.convergence-metrics article:nth-child(1){border-top-color:var(--violet)}.convergence-metrics article:nth-child(2){border-top-color:var(--mint)}.convergence-metrics article:nth-child(3){border-top-color:var(--orange)}.convergence-metrics article:nth-child(4){border-top-color:var(--red)}.convergence-metrics strong{font-size:16px}.convergence-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.convergence-chart-grid canvas{display:block;width:100%;min-height:330px;border-radius:8px}.history-legend{display:flex;justify-content:center;gap:18px;margin-top:10px;color:var(--muted);font-size:10px;font-weight:800}.history-legend i{display:inline-block;width:21px;height:3px;margin-right:5px;vertical-align:middle;background:var(--indigo)}.history-legend .average-line{background:var(--mint)}.history-legend .diversity-line{background:var(--orange)}
.diversity-remedy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.diversity-remedy-grid article{padding:22px;border:1px solid var(--line);border-top:5px solid var(--indigo);border-radius:13px;background:#fff}.diversity-remedy-grid article:nth-child(2){border-top-color:var(--mint)}.diversity-remedy-grid article:nth-child(3){border-top-color:var(--orange)}.diversity-remedy-grid article:nth-child(4){border-top-color:var(--red)}.diversity-remedy-grid span{display:grid;place-items:center;width:37px;height:37px;border-radius:9px;background:#eceaff;color:var(--indigo);font:750 11px 'DM Mono'}.diversity-remedy-grid h3{margin:14px 0 7px;font-size:18px}.diversity-remedy-grid p{min-height:74px;color:var(--muted);font-size:13px}.diversity-remedy-grid code{display:block;padding:9px;border-radius:7px;background:#f1f3f8;font:650 11px 'DM Mono';text-align:center}.completed-cta .disabled-link{cursor:default;opacity:.72}
@media(max-width:1150px){.convergence-hero{grid-template-columns:1fr}.convergence-hero-visual{max-width:760px}.convergence-lab-shell{grid-template-columns:1fr}.convergence-chart-grid{grid-template-columns:1fr}.diversity-remedy-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.convergence-hero{padding:38px 25px}.convergence-hero h1{font-size:41px;letter-spacing:-1.8px}.convergence-hero-visual,.signal-grid{grid-template-columns:1fr}.convergence-hero-visual>b{text-align:center;transform:rotate(90deg)}.diagnosis-matrix{grid-template-rows:560px 58px}.premature-flow{grid-template-columns:1fr}.premature-flow>i{text-align:center;transform:rotate(90deg)}.convergence-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.convergence-hero{padding:30px 20px}.convergence-hero h1{font-size:35px}.diagnosis-matrix{grid-template-columns:42px 1fr;grid-template-rows:auto 52px}.diagnosis-plane{grid-template-columns:1fr}.diagnosis-plane article{min-height:165px}.diversity-remedy-grid,.convergence-metrics{grid-template-columns:1fr}.history-legend{flex-wrap:wrap}.convergence-chart-grid canvas{min-height:300px}}
