.engineering-page{display:grid;gap:1.5rem}.engineering-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;padding:2rem;border-radius:28px}.engineering-hero h1{margin:.55rem 0 .65rem;font-size:clamp(2rem,4vw,3.2rem)}.engineering-hero p{max-width:760px;color:var(--text-muted,#9ca8b8)}.engineering-hero-meta{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem}.engineering-hero-meta span{padding:.55rem .8rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.05)}.engineering-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;padding:.55rem;border:1px solid rgba(132,145,170,.18);border-radius:20px;background:rgba(15,22,34,.75)}.engineering-tab{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.75rem;border:0;border-radius:14px;background:transparent;color:#aab5c7;font:inherit;font-weight:700;cursor:pointer}.engineering-tab span{color:#8f7dff}.engineering-tab:hover,.engineering-tab.active{background:linear-gradient(135deg,rgba(111,86,255,.24),rgba(30,184,181,.13));color:#fff}.engineering-panel{padding:1.5rem;border:1px solid rgba(132,145,170,.18);border-radius:24px;background:linear-gradient(155deg,rgba(21,29,44,.97),rgba(12,18,29,.98));box-shadow:0 20px 55px rgba(0,0,0,.18)}.engineering-panel-heading{margin-bottom:1.35rem}.engineering-panel-heading.with-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.engineering-panel-heading h2{margin:0 0 .35rem;font-size:1.35rem}.engineering-panel-heading p{margin:0;color:#98a5b8}.engineering-actions{display:flex;gap:.65rem;flex-wrap:wrap}.er-canvas,.relational-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.er-entity,.relational-table{overflow:hidden;border:1px solid rgba(126,111,255,.27);border-radius:17px;background:rgba(7,13,23,.62)}.er-entity header,.relational-table header{padding:.85rem 1rem;background:linear-gradient(135deg,rgba(111,86,255,.28),rgba(29,180,177,.13));font-weight:800}.er-entity ul{list-style:none;margin:0;padding:.55rem 1rem 1rem}.er-entity li{padding:.48rem 0;border-bottom:1px solid rgba(255,255,255,.06);color:#b7c1d1}.er-entity li.primary-key{color:#a999ff;font-weight:700}.relationship-list{display:grid;gap:.65rem;margin-top:1.2rem}.relationship-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.8rem 1rem;border:1px dashed rgba(122,137,164,.25);border-radius:14px}.relationship-row span{text-align:center;color:#70d8d1;font-family:monospace}.relationship-row>:last-child{text-align:right}.relational-columns{display:grid}.relational-column{display:grid;grid-template-columns:32px 1fr auto;gap:.65rem;align-items:center;padding:.7rem 1rem;border-top:1px solid rgba(255,255,255,.06)}.relational-column span{color:#8f7dff;font-size:.75rem;font-weight:800}.relational-column code{color:#70d8d1;font-size:.78rem}.sql-preview{max-height:650px;overflow:auto;margin:0;padding:1.25rem;border-radius:16px;background:#070c14;color:#cad6e7;white-space:pre;font-size:.84rem;line-height:1.65}.architecture-stack{display:grid;gap:.85rem}.architecture-layer{display:grid;grid-template-columns:64px 1fr;gap:1rem;padding:1.15rem;border:1px solid rgba(132,145,170,.18);border-radius:18px;background:rgba(8,14,24,.55)}.architecture-layer-index{display:grid;place-items:center;min-height:58px;border-radius:14px;background:rgba(111,86,255,.17);color:#a999ff;font-weight:900}.architecture-layer h3{margin:0 0 .35rem}.architecture-layer p{margin:0;color:#aab5c7}.architecture-components{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.architecture-components span{padding:.4rem .65rem;border-radius:999px;background:rgba(30,184,181,.11);color:#81ded8;font-size:.82rem}.api-endpoint-list{display:grid;gap:.65rem}.api-endpoint{display:grid;grid-template-columns:76px minmax(220px,.9fr) 1.3fr auto;gap:1rem;align-items:center;padding:.85rem 1rem;border:1px solid rgba(132,145,170,.16);border-radius:14px;background:rgba(8,14,24,.5)}.api-endpoint code{color:#d6deec}.api-endpoint p{margin:0;color:#9eabbd}.api-endpoint small{color:#7e8ba0}.http-method{padding:.35rem .45rem;border-radius:8px;text-align:center;font-size:.75rem;font-weight:900}.http-method.get{background:rgba(49,182,124,.14);color:#64d69b}.http-method.post{background:rgba(70,138,255,.15);color:#75a8ff}.http-method.put{background:rgba(240,174,61,.15);color:#f1bd64}.http-method.delete{background:rgba(242,83,105,.14);color:#ff8192}.engineering-locked{display:grid;justify-items:center;text-align:center;padding:4rem 1.5rem;border:1px solid rgba(132,145,170,.18);border-radius:28px;background:linear-gradient(145deg,rgba(24,31,48,.96),rgba(11,17,28,.98))}.engineering-lock-icon{display:grid;place-items:center;width:72px;height:72px;margin-bottom:1rem;border-radius:22px;background:rgba(111,86,255,.18);color:#aa9bff;font-size:2rem}.engineering-locked h1{margin:.5rem 0}.engineering-locked p{max-width:650px;color:#a6b1c2}.engineering-locked-actions{display:flex;gap:.75rem;margin-top:1rem}@media(max-width:900px){.engineering-tabs{grid-template-columns:1fr 1fr}.engineering-tab:last-child{grid-column:1/-1}.engineering-hero{flex-direction:column}.api-endpoint{grid-template-columns:70px 1fr}.api-endpoint p,.api-endpoint small{grid-column:2}}@media(max-width:620px){.engineering-tabs{grid-template-columns:1fr}.engineering-tab:last-child{grid-column:auto}.engineering-panel-heading.with-actions{flex-direction:column}.relationship-row{grid-template-columns:1fr;text-align:center}.relationship-row>:last-child{text-align:center}.architecture-layer{grid-template-columns:1fr}.api-endpoint{grid-template-columns:1fr}.api-endpoint p,.api-endpoint small{grid-column:auto}.engineering-actions,.engineering-locked-actions{width:100%;flex-direction:column}}
.architecture-assessment-summary{display:grid;grid-template-columns:220px 1fr;gap:1rem;margin-bottom:1.2rem}.architecture-score-card{display:grid;align-content:center;justify-items:center;min-height:150px;padding:1.1rem;border:1px solid rgba(143,125,255,.35);border-radius:18px;background:linear-gradient(145deg,rgba(111,86,255,.2),rgba(30,184,181,.09))}.architecture-score-card span{color:#a99bff;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.architecture-score-card strong{font-size:2.4rem;color:#fff}.architecture-score-card small{color:#9facbd;text-align:center}.architecture-summary-copy{padding:1.2rem;border:1px solid rgba(132,145,170,.18);border-radius:18px;background:rgba(8,14,24,.55)}.architecture-summary-copy strong{color:#fff;font-size:1.15rem}.architecture-summary-copy p{margin:.55rem 0 0;color:#aab5c7;line-height:1.65}.architecture-checklist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.2rem}.architecture-checklist-item{display:grid;grid-template-columns:30px 1fr auto;gap:.65rem;align-items:start;padding:1rem;border:1px solid rgba(46,204,151,.2);border-radius:15px;background:rgba(10,35,31,.28)}.architecture-checklist-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(46,204,151,.14);color:#62d9a8;font-weight:900}.architecture-checklist-item strong{display:block;color:#f4f7fb}.architecture-checklist-item small{display:block;margin-top:.3rem;color:#93a2b5;line-height:1.4}.architecture-checklist-item b{color:#62d9a8;font-size:.76rem;white-space:nowrap}.architecture-export-actions a{text-decoration:none}@media(max-width:760px){.architecture-assessment-summary{grid-template-columns:1fr}.architecture-checklist-item{grid-template-columns:30px 1fr}.architecture-checklist-item b{grid-column:2}}

/* PRO-02 · Modelo Relacional profesional */
.relational-normalization-summary{display:grid;grid-template-columns:150px 1fr;gap:1rem;align-items:stretch;margin-bottom:1.25rem;padding:1rem;border:1px solid rgba(74,210,170,.22);border-radius:18px;background:linear-gradient(135deg,rgba(38,166,137,.10),rgba(111,86,255,.08))}.normalization-grade{display:grid;place-items:center;align-content:center;gap:.25rem;min-height:110px;border-radius:15px;background:rgba(7,13,23,.66)}.normalization-grade span{color:#91a0b5;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.normalization-grade strong{font-size:2.1rem;color:#71dcc2}.relational-normalization-summary h3{margin:.15rem 0 .45rem}.relational-normalization-summary p{margin:0;color:#aab6c7;line-height:1.6}.normalization-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.normalization-badge{padding:.35rem .6rem;border-radius:999px;font-size:.78rem;font-weight:800}.normalization-badge.success{background:rgba(50,190,139,.14);color:#68dba8}.normalization-badge.warning{background:rgba(244,176,67,.14);color:#f0bf6b}.relational-grid-pro{align-items:start}.relational-table-pro header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.relational-table-pro header span{font-size:.75rem;color:#9eabc0;font-weight:600}.relational-column.is-pk{background:rgba(111,86,255,.09)}.relational-column.is-fk{background:rgba(30,184,181,.06)}.relational-column>div{display:grid;gap:.12rem;min-width:0}.relational-column small{overflow:hidden;text-overflow:ellipsis;color:#70d8d1;font-size:.68rem}.relational-key-label{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:rgba(111,86,255,.13)}.relational-detail-block{padding:.75rem 1rem;border-top:1px solid rgba(255,255,255,.07)}.relational-detail-block h4{margin:0 0 .55rem;color:#cbd5e4;font-size:.82rem}.relational-detail-row{display:flex;justify-content:space-between;gap:.75rem;padding:.36rem 0;color:#9eabc0;font-size:.72rem}.relational-detail-row code{overflow:hidden;text-overflow:ellipsis;color:#86dcd6}.relational-table-pro footer{display:grid;gap:.3rem;padding:.8rem 1rem;border-top:1px solid rgba(255,255,255,.07);background:rgba(111,86,255,.06)}.relational-table-pro footer strong{color:#a999ff;font-size:.78rem}.relational-table-pro footer span{color:#8f9caf;font-size:.72rem;line-height:1.45}.relational-relationships{margin-top:1.5rem}.relationship-row-pro{grid-template-columns:1fr auto 1fr auto}.relationship-row-pro small{padding:.25rem .5rem;border-radius:999px;background:rgba(255,255,255,.06);color:#aeb9c9}.relationship-row-pro strong:last-of-type{text-align:right}@media(max-width:720px){.relational-normalization-summary{grid-template-columns:1fr}.relationship-row-pro{grid-template-columns:1fr;text-align:center}.relationship-row-pro strong:last-of-type{text-align:center}}

/* PRO-03 · Diagrama ER profesional con notación Crow's Foot */
.er-diagram-studio{display:grid;gap:1rem}.er-diagram-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.er-diagram-summary{display:flex;align-items:center;gap:.45rem;color:#98a5b8}.er-diagram-summary strong{color:#f4f7fb}.er-diagram-actions{display:flex;gap:.5rem;flex-wrap:wrap}.button.compact{min-width:42px;padding:.55rem .7rem}.er-diagram-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;padding:.8rem 1rem;border:1px solid rgba(132,145,170,.16);border-radius:14px;background:rgba(7,13,23,.42);color:#9eabbd;font-size:.76rem}.er-diagram-legend span{display:flex;align-items:center;gap:.4rem}.er-diagram-legend b{color:#75ddd5;font-family:monospace}.er-key{display:inline-grid;place-items:center;min-width:25px;height:20px;padding:0 .3rem;border-radius:6px;color:#fff!important;font-size:.66rem}.er-key.pk{background:#604bd8}.er-key.fk{background:#087f7b}.er-diagram-viewport{position:relative;overflow:auto;min-height:0;max-height:none;border:1px solid rgba(126,111,255,.25);border-radius:18px;background:#08111f;overscroll-behavior:contain}.er-diagram-svg{display:block;max-width:none;background:#08111f}.er-diagram-background{fill:#08111f}.er-node-body{fill:#101a2a;stroke:#52627a;stroke-width:1.2}.er-node-header{fill:url(#none);fill:#342875}.er-node-divider{stroke:#4e5c72}.er-node-title{fill:#fff;font:700 15px Inter,Arial,sans-serif}.er-node-type{fill:#bcb1ff;font:700 9px Inter,Arial,sans-serif;letter-spacing:.12em}.er-key-badge.pk{fill:#5f4ad5}.er-key-badge.fk{fill:#087d79}.er-key-badge.a{fill:#29364a}.er-key-text{fill:#fff;font:700 8px Inter,Arial,sans-serif}.er-attribute-name{fill:#d6deea;font:12px Inter,Arial,sans-serif}.er-attribute-type{fill:#8493a9;font:9px ui-monospace,SFMono-Regular,Consolas,monospace}.er-relationship-line{fill:none;stroke:#7b8da7;stroke-width:2}.er-relationship-line.required{stroke:#43c9bd}.er-relationship-line.optional{stroke-dasharray:6 5}.er-marker-stroke{fill:none;stroke:#43c9bd;stroke-width:1.7}.er-marker-fill{fill:#08111f;stroke:#43c9bd;stroke-width:1.7}.er-cardinality-label rect{fill:#111c2b;stroke:#40516a}.er-cardinality-label text{fill:#88e5dd;font:700 10px ui-monospace,SFMono-Regular,Consolas,monospace}.er-fk-caption{fill:#91a1b6;font:9px Inter,Arial,sans-serif}.er-entity-node{transition:filter .18s ease}.er-entity-node:hover .er-node-body{stroke:#8d7cff;stroke-width:2}@media(max-width:720px){.er-diagram-toolbar{align-items:stretch}.er-diagram-actions{width:100%}.er-diagram-actions .button{flex:1}.er-diagram-viewport{min-height:0}}

/* PRO-05 · API REST */
.api-rest-studio{display:grid;gap:1.25rem}.api-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.api-summary-grid article{display:grid;gap:.25rem;padding:1rem;border:1px solid rgba(132,145,170,.16);border-radius:16px;background:rgba(8,14,24,.55)}.api-summary-grid strong{font-size:1.35rem;color:#fff}.api-summary-grid span{font-size:.8rem;color:#8e9caf}.api-generated-features{display:flex;flex-wrap:wrap;gap:.5rem}.api-generated-features span{padding:.42rem .68rem;border-radius:999px;background:rgba(111,86,255,.13);color:#b7aaff;font-size:.78rem;font-weight:700}.api-resource-list{display:grid;gap:1rem}.api-resource-card{overflow:hidden;border:1px solid rgba(132,145,170,.18);border-radius:20px;background:rgba(8,14,24,.48)}.api-resource-card>header{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(135deg,rgba(111,86,255,.18),rgba(30,184,181,.08))}.api-resource-card h3{margin:.15rem 0 .3rem}.api-resource-card header code{color:#78d9d3}.api-resource-kicker{color:#9d8dff;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.api-resource-count{align-self:center;padding:.4rem .65rem;border-radius:999px;background:rgba(255,255,255,.06);color:#aab5c7;font-size:.75rem}.api-contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem 1.2rem}.api-contract-grid section{display:grid;align-content:start;gap:.4rem;padding:.9rem;border:1px solid rgba(132,145,170,.13);border-radius:14px;background:rgba(4,9,17,.35)}.api-contract-grid h4{margin:0 0 .35rem;font-size:.85rem;color:#a999ff}.api-contract-grid section>code{display:block;padding:.25rem 0;color:#9facbe;font-size:.78rem}.api-property-row{display:grid;grid-template-columns:1fr auto auto;gap:.55rem;align-items:center;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.api-property-row code{color:#d4ddea}.api-property-row span{color:#73d8d0;font-size:.75rem}.api-property-row small{padding:.18rem .35rem;border-radius:5px;background:rgba(111,86,255,.15);color:#b6aaff;font-size:.6rem}.api-endpoint-details{display:grid;gap:.55rem;padding:0 1.2rem 1.2rem}.api-endpoint-detail{border:1px solid rgba(132,145,170,.14);border-radius:13px;background:rgba(5,10,18,.45)}.api-endpoint-detail summary{display:grid;grid-template-columns:72px minmax(210px,.85fr) 1fr auto;gap:.8rem;align-items:center;padding:.75rem .85rem;cursor:pointer;list-style:none}.api-endpoint-detail summary::-webkit-details-marker{display:none}.api-endpoint-detail summary code{color:#d8e0ec}.api-endpoint-detail summary>span:not(.http-method){color:#99a7ba}.api-endpoint-detail summary small{color:#6ed4a0;font-weight:800}.api-example-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:.8rem;border-top:1px solid rgba(255,255,255,.06)}.api-example-grid.response-only{grid-template-columns:1fr}.api-example-grid section{min-width:0}.api-example-grid h5{margin:0 0 .45rem;color:#9d8dff}.api-example-grid pre{max-height:320px;overflow:auto;margin:0;padding:.85rem;border-radius:10px;background:#050a11;color:#cdd8e7;font-size:.76rem;line-height:1.55;white-space:pre-wrap}@media(max-width:900px){.api-summary-grid{grid-template-columns:1fr 1fr}.api-contract-grid,.api-example-grid{grid-template-columns:1fr}.api-endpoint-detail summary{grid-template-columns:70px 1fr}.api-endpoint-detail summary>span:not(.http-method),.api-endpoint-detail summary small{grid-column:2}}@media(max-width:620px){.api-summary-grid{grid-template-columns:1fr}.api-resource-card>header{flex-direction:column}.api-endpoint-detail summary{grid-template-columns:1fr}.api-endpoint-detail summary>span:not(.http-method),.api-endpoint-detail summary small{grid-column:auto}}


/* Corrección: opinión profesional del Arquitecto IA */
.architecture-ai-opinion{margin-top:1.35rem}
.architecture-opinion-card{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:1.25rem;border:1px solid rgba(132,145,170,.18);border-radius:18px;background:rgba(8,14,24,.55);min-width:0}
.architecture-opinion-card-title{display:flex;align-items:center;gap:.75rem;min-width:0}
.architecture-opinion-card-title>span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid rgba(143,125,255,.32);border-radius:11px;background:rgba(111,86,255,.17);color:#b7abff;font-size:.72rem;font-weight:900;letter-spacing:.06em}
.architecture-opinion-card h3{min-width:0;margin:0;color:#f4f7fb;font-size:1.05rem;overflow-wrap:anywhere}
.architecture-opinion-copy{min-width:0;margin:0;color:#b8c3d3;font-size:.98rem;line-height:1.72;overflow-wrap:anywhere;word-break:normal}
.architecture-opinion-context{display:block;min-width:0;padding:.9rem 1rem;border-left:3px solid #8f7dff;border-radius:0 12px 12px 0;background:rgba(111,86,255,.08);color:#9eabbd;font-size:.84rem;line-height:1.6;white-space:normal;overflow-wrap:anywhere;word-break:normal}
@media(max-width:620px){.architecture-opinion-card{padding:1rem}.architecture-opinion-copy{font-size:.92rem}.architecture-opinion-context{padding:.8rem .85rem}}

.api-base-notice{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;padding:1rem 1.1rem;border:1px solid rgba(88,205,198,.24);border-radius:16px;background:linear-gradient(135deg,rgba(16,47,59,.72),rgba(44,31,86,.38));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}.api-base-notice-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(88,205,198,.14);border:1px solid rgba(88,205,198,.22);color:#77ded7;font-size:.8rem;font-weight:900}.api-base-notice strong{display:block;margin:.05rem 0 .35rem;color:#f3f6fb;font-size:.92rem}.api-base-notice p{margin:0;color:#aeb9c9;font-size:.86rem;line-height:1.6}.api-base-notice small{display:block;margin-top:.45rem;color:#8fa0b6;font-size:.75rem;line-height:1.5}@media(max-width:620px){.api-base-notice{grid-template-columns:1fr}.api-base-notice-icon{display:none}}

/* API REST multi-stack · backend + framework/runtime selection */
.api-stack-heading{align-items:center}.api-stack-config{display:grid;gap:1rem;padding:1.15rem;border:1px solid rgba(126,111,255,.28);border-radius:18px;background:linear-gradient(145deg,rgba(15,24,41,.92),rgba(10,31,38,.72))}.api-stack-config-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.api-stack-config-heading h3{margin:.2rem 0 0;font-size:1.05rem}.api-recommended-badge{padding:.42rem .7rem;border-radius:999px;border:1px solid rgba(94,224,183,.3);background:rgba(35,180,131,.12);color:#79e0b9;font-size:.72rem;font-weight:800;white-space:nowrap}.api-stack-selectors{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.api-stack-selectors label{display:grid;gap:.45rem}.api-stack-selectors label>span{color:#9eabc0;font-size:.76rem;font-weight:700}.api-stack-selectors select{width:100%;min-height:46px;padding:.7rem .85rem;border:1px solid rgba(132,145,170,.25);border-radius:12px;background:#0b1728;color:#f1f5fb;font:inherit}.api-stack-selection-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.9rem 1rem;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(4,10,18,.42)}.api-stack-selection-summary>div:first-child{display:grid;gap:.28rem}.api-stack-selection-summary strong{color:#f5f7fb}.api-stack-selection-summary span{color:#99a8bb;font-size:.82rem;line-height:1.5}.api-stack-runtime{display:grid;justify-items:end;gap:.3rem;text-align:right}.api-stack-runtime code{padding:.35rem .55rem;border-radius:8px;background:rgba(111,86,255,.13);color:#b7aaff}.api-stack-runtime small{max-width:420px;color:#8292a8;font-size:.7rem}.api-stack-rationale{margin:0;padding:.8rem .9rem;border-left:3px solid #8f7dff;border-radius:0 10px 10px 0;background:rgba(111,86,255,.07);color:#9fadc0;font-size:.8rem;line-height:1.55}.api-stack-rationale strong{color:#c5bbff}.api-contract-grid section>code{overflow-wrap:anywhere}.api-property-row span{text-align:right}.engineering-actions .button.primary{white-space:nowrap}@media(max-width:900px){.api-stack-selectors{grid-template-columns:1fr}.api-stack-selection-summary{grid-template-columns:1fr}.api-stack-runtime{justify-items:start;text-align:left}}@media(max-width:620px){.api-stack-config-heading{flex-direction:column}.api-recommended-badge{white-space:normal}.api-stack-heading{align-items:stretch}.engineering-actions .button.primary{width:100%;text-align:center}}
.api-stack-rationale.api-stack-fallback{border-left-color:#f0bd6b;background:rgba(240,189,107,.07)}.api-stack-rationale.api-stack-fallback strong{color:#f0bd6b}

/* =========================================================
   PRO · Diagrama ER semántico V17
   Trazabilidad visual, relaciones nombradas y mejor legibilidad.
   ========================================================= */
.er-semantic-badge{display:inline-flex;align-items:center;min-height:25px;padding:.25rem .55rem;border:1px solid rgba(87,216,207,.24);border-radius:999px;background:rgba(37,183,174,.09);color:#7be1d9;font-size:.68rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.er-key.trace{background:rgba(53,214,245,.14);border:1px solid rgba(53,214,245,.25);color:#79e4f7!important}.er-node-header{fill:#342875}.er-node-type{fill:#c8bdff;font-size:8px;letter-spacing:.08em}.er-relationship-line{stroke-width:2.15}.er-relation-name rect{fill:#111c2b;stroke:#496078;stroke-width:1}.er-relation-name text{fill:#e9f6f5;font:700 10px Inter,Arial,sans-serif}.er-end-cardinality text{fill:#8ee9e0;font:800 9px ui-monospace,SFMono-Regular,Consolas,monospace;paint-order:stroke;stroke:#08111f;stroke-width:3px;stroke-linejoin:round}.er-fk-caption{fill:#9eafc3;font:9px ui-monospace,SFMono-Regular,Consolas,monospace;paint-order:stroke;stroke:#08111f;stroke-width:3px;stroke-linejoin:round}.er-relationship-group:hover .er-relationship-line{stroke:#8d7cff;stroke-width:2.8}.er-relationship-group:hover .er-relation-name rect{stroke:#8d7cff}.er-attribute-type{fill:#9babc0}.er-diagram-viewport{scrollbar-color:rgba(87,216,207,.55) rgba(5,12,22,.75)}
@media(max-width:720px){.er-semantic-badge{width:max-content}.er-diagram-summary{flex-wrap:wrap}.er-diagram-actions .button.secondary:not(.compact){min-width:120px}}

/* ER V18: lectura por capas sin scroll vertical interno */
.er-relationships{pointer-events:visibleStroke}.er-entity-node{pointer-events:all}.er-relation-name rect{fill:#0d1a2a;fill-opacity:.96;stroke:#4c7184}.er-relation-name text{font-size:10px}.er-diagram-svg{shape-rendering:geometricPrecision}.er-diagram-viewport{scrollbar-gutter:stable both-edges}

/* PRO · Arquitectura V24: consistencia semántica y legibilidad */
.architecture-score-note{max-width:180px;margin-top:.5rem;color:#8292a8!important;font-size:.68rem!important;line-height:1.45}
.architecture-opinion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1.2rem;align-items:stretch}
.architecture-opinion-grid .architecture-checklist-item{grid-template-columns:30px minmax(0,1fr);align-content:start;min-width:0}
.architecture-opinion-grid .architecture-checklist-item>.architecture-priority{grid-column:2;width:max-content;margin-top:.2rem;padding:.25rem .5rem;border-radius:999px;background:rgba(46,204,151,.10);white-space:normal}
.architecture-opinion-body{margin:.55rem 0 0;color:#b9c4d3;line-height:1.58;font-size:.9rem}
.architecture-opinion-details{display:grid;gap:.45rem;margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.07)}
.architecture-opinion-details p{margin:0;color:#8f9eb2;font-size:.78rem;line-height:1.5}
.architecture-opinion-details b{color:#b8c6d8;font-size:inherit;white-space:normal}
.architecture-checklist-item .architecture-evidence{color:#a8b4c5}
.architecture-checklist-item .architecture-action{margin-top:.55rem;color:#8999ad}
.architecture-checklist-item .architecture-action b{display:inline;color:#9f91ff;font-size:inherit;white-space:normal}
@media(max-width:1180px){.architecture-opinion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.architecture-opinion-grid{grid-template-columns:1fr}.architecture-score-note{max-width:260px}.architecture-opinion-grid .architecture-checklist-item{grid-template-columns:30px 1fr}}

/* PRO · Arquitectura V24.1: hotfix de tarjetas del checklist.
   El estado ya no ocupa una tercera columna "auto" que pueda colapsar el título. */
.architecture-checklist-grid .architecture-checklist-recommendation{
    grid-template-columns:30px minmax(0,1fr);
    align-content:start;
    min-width:0;
}
.architecture-checklist-grid .architecture-checklist-content{
    display:grid;
    gap:.42rem;
    min-width:0;
}
.architecture-checklist-grid .architecture-checklist-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.65rem;
    min-width:0;
    flex-wrap:wrap;
}
.architecture-checklist-grid .architecture-checklist-header>strong{
    flex:1 1 150px;
    min-width:0;
    line-height:1.35;
    overflow-wrap:normal;
    word-break:normal;
}
.architecture-checklist-grid .architecture-checklist-status{
    flex:0 1 auto;
    max-width:100%;
    padding:.24rem .48rem;
    border-radius:999px;
    background:rgba(46,204,151,.10);
    color:#62d9a8;
    font-size:.72rem;
    line-height:1.25;
    text-align:left;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
}
.architecture-checklist-grid .architecture-evidence,
.architecture-checklist-grid .architecture-action{
    min-width:0;
    overflow-wrap:break-word;
    word-break:normal;
}
@media(max-width:760px){
    .architecture-checklist-grid .architecture-checklist-recommendation{grid-template-columns:30px minmax(0,1fr)}
    .architecture-checklist-grid .architecture-checklist-header{display:grid;grid-template-columns:1fr;gap:.45rem}
    .architecture-checklist-grid .architecture-checklist-status{width:max-content;max-width:100%}
}

/* PRO · Arquitectura V24.2: checklist balanceado 3x3 y wrapping seguro. */
@media(max-width:1180px){.architecture-checklist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.architecture-checklist-grid{grid-template-columns:1fr}}

/* V25 · API REST requirement-driven workbench */
.api-section-eyebrow{display:block;margin-bottom:.35rem;color:#8f7dff;font-size:.68rem;font-weight:900;letter-spacing:.1em}.api-contract-notice{display:grid;grid-template-columns:38px 1fr;gap:.8rem;align-items:start;padding:1rem 1.05rem;border:1px solid rgba(47,211,166,.27);border-radius:16px;background:linear-gradient(135deg,rgba(20,125,104,.13),rgba(111,86,255,.08))}.api-contract-notice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(47,211,166,.14);color:#6ce0b8;font-weight:900}.api-contract-notice strong{color:#f2f6fb}.api-contract-notice p{margin:.25rem 0 0;color:#9eacbf;font-size:.82rem;line-height:1.55}.api-workbench{display:grid;grid-template-columns:minmax(235px,285px) minmax(0,1fr);gap:1rem;align-items:start}.api-resource-nav{min-width:0;padding:.7rem;border:1px solid rgba(132,145,170,.16);border-radius:18px;background:rgba(5,10,18,.42);position:sticky;top:92px}.api-resource-nav-heading{display:flex;align-items:center;justify-content:space-between;padding:.25rem .35rem .65rem;color:#dce4f1;font-size:.82rem;font-weight:800}.api-resource-nav-heading small{display:grid;place-items:center;min-width:26px;height:24px;border-radius:999px;background:rgba(111,86,255,.15);color:#b8abff}.api-resource-nav-list{display:grid;gap:.42rem;max-height:560px;overflow:auto;padding-right:.2rem;scrollbar-width:thin;scrollbar-color:rgba(73,201,191,.5) transparent}.api-resource-nav-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;width:100%;padding:.72rem .75rem;border:1px solid transparent;border-radius:12px;background:transparent;color:#aab6c8;text-align:left;font:inherit;cursor:pointer;transition:.16s ease}.api-resource-nav-item:hover{background:rgba(255,255,255,.035);border-color:rgba(132,145,170,.13)}.api-resource-nav-item.active{background:linear-gradient(135deg,rgba(111,86,255,.19),rgba(29,180,177,.09));border-color:rgba(111,176,255,.27);color:#fff}.api-resource-nav-main{min-width:0;display:grid;gap:.14rem}.api-resource-nav-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.api-resource-nav-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8090a7;font-size:.68rem}.api-resource-nav-meta{display:grid;justify-items:end;gap:.12rem}.api-resource-nav-meta b{display:grid;place-items:center;min-width:24px;height:22px;border-radius:7px;background:rgba(47,211,166,.1);color:#77dfbd;font-size:.7rem}.api-resource-nav-meta small{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8f7dff;font-size:.58rem}.api-resource-detail{min-width:0;overflow:hidden;border:1px solid rgba(132,145,170,.17);border-radius:18px;background:rgba(6,12,21,.44)}.api-resource-detail-header{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.06);background:linear-gradient(135deg,rgba(111,86,255,.12),rgba(30,184,181,.06))}.api-resource-detail-header h3{margin:.16rem 0 .3rem;font-size:1.18rem}.api-resource-detail-header p{max-width:760px;margin:0;color:#96a4b8;font-size:.8rem;line-height:1.55}.api-resource-detail-badges{display:flex;align-items:flex-start;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.api-access-badge{padding:.38rem .58rem;border:1px solid rgba(47,211,166,.22);border-radius:999px;background:rgba(47,211,166,.08);color:#78dfba;font-size:.65rem;font-weight:800;white-space:nowrap}.api-contract-grid.compact{padding:.9rem 1rem}.api-contract-grid.compact section{max-height:300px;overflow:auto}.api-property-row small.read-only{background:rgba(103,128,155,.13);color:#98a8ba}.api-files-note{margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05);color:#7f8fa4;font-size:.68rem;line-height:1.45}.api-endpoint-detail summary{grid-template-columns:70px minmax(190px,.72fr) minmax(0,1fr) auto 44px}.api-endpoint-evidence{padding:.22rem .42rem;border-radius:6px;background:rgba(111,86,255,.12);color:#b8adff!important;font-size:.62rem!important;font-weight:800;white-space:nowrap}.http-method.patch{background:rgba(170,110,255,.15);color:#c39aff}.api-endpoint-expanded{border-top:1px solid rgba(255,255,255,.06)}.api-endpoint-context{display:grid;gap:.55rem;padding:.72rem .85rem;color:#8e9caf;font-size:.72rem}.api-endpoint-context strong{color:#c7d1df}.api-parameter-list{display:flex;flex-wrap:wrap;gap:.42rem}.api-parameter-list span{padding:.34rem .5rem;border:1px solid rgba(132,145,170,.12);border-radius:8px;background:rgba(255,255,255,.025)}.api-parameter-list code{color:#7bded7}.api-parameter-list b{color:#a99aff;font-size:.63rem;text-transform:uppercase}.api-automation-panel{display:grid;gap:.85rem;padding:1rem;border:1px solid rgba(132,145,170,.16);border-radius:18px;background:rgba(7,13,22,.42)}.api-automation-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.api-automation-heading h3{margin:.18rem 0 0;font-size:1rem}.api-automation-heading>span{display:grid;place-items:center;min-width:30px;height:28px;border-radius:999px;background:rgba(111,86,255,.14);color:#b7abff;font-weight:800}.api-automation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.api-automation-grid article{padding:.85rem;border:1px solid rgba(47,211,166,.13);border-radius:13px;background:rgba(12,28,32,.32)}.api-automation-grid article>div{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}.api-automation-grid strong{color:#e9eff7;font-size:.8rem}.api-automation-grid article>div span{padding:.2rem .36rem;border-radius:6px;background:rgba(111,86,255,.13);color:#b7aaff;font-size:.6rem;font-weight:800}.api-automation-grid p{margin:.5rem 0 0;color:#8797aa;font-size:.7rem;line-height:1.48}.api-automation-grid b{color:#aeb9c9}.api-summary-grid article:nth-child(3) strong{color:#79dfbb}
@media(max-width:1050px){.api-workbench{grid-template-columns:1fr}.api-resource-nav{position:static}.api-resource-nav-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:320px}.api-automation-grid{grid-template-columns:1fr}.api-resource-detail-header{flex-direction:column}.api-resource-detail-badges{justify-content:flex-start}.api-endpoint-detail summary{grid-template-columns:68px 1fr auto}.api-endpoint-detail summary>span:not(.http-method):not(.api-endpoint-evidence){grid-column:2}.api-endpoint-evidence{grid-column:3}.api-endpoint-detail summary small{grid-column:3}}
@media(max-width:680px){.api-resource-nav-list{grid-template-columns:1fr;max-height:360px}.api-contract-grid.compact{grid-template-columns:1fr}.api-endpoint-detail summary{grid-template-columns:1fr}.api-endpoint-detail summary>*{grid-column:auto!important}.api-resource-detail-badges{display:grid;justify-content:start}.api-access-badge{white-space:normal}.api-automation-heading{flex-direction:column}}
