/*
   The Cotizador IA is rendered inside an XAF dynamic detail component.
   Razor CSS isolation is not emitted on that render path, so these are
   deliberately global selectors, all scoped under .cotizador-demo.
*/
.cotizador-demo { color: #1f2937; padding: 1rem; }
.cotizador-demo__header { border-bottom: 1px solid #dbe3ee; margin-bottom: 1rem; padding-bottom: 1rem; }
.cotizador-demo h2, .cotizador-demo h3 { color: #172554; margin: 0; }
.cotizador-demo h2 { font-size: 1.35rem; }
.cotizador-demo h3 { font-size: 1.1rem; }
.cotizador-demo__eyebrow { color: #475569; font-size: .75rem; font-weight: 700; letter-spacing: .04em; margin: 0 0 .25rem; text-transform: uppercase; }
.cotizador-demo__banner { background: #fff7d6; border: 1px solid #d99100; color: #7a4800; font-weight: 700; margin: .75rem 0; padding: .65rem .8rem; }
.cotizador-demo__context { display: grid; gap: .6rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; }
.cotizador-demo__context dt, .cotizador-demo__facts dt { color: #475569; font-size: .76rem; font-weight: 700; }
.cotizador-demo__context dd, .cotizador-demo__facts dd { margin: .12rem 0 0; }
.cotizador-demo__workspace { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .85fr) minmax(18rem, .85fr); }
.cotizador-demo__panel { background: #fff; border: 1px solid #cbd5e1; border-radius: .6rem; display: flex; flex-direction: column; gap: .75rem; min-width: 0; padding: 1rem; }
.cotizador-demo__panel-heading { align-items: start; display: flex; gap: .5rem; justify-content: space-between; }
.cotizador-demo__file { overflow-wrap: anywhere; }
.cotizador-demo label, .cotizador-demo legend { font-weight: 700; }
.cotizador-demo__select, .cotizador-demo__search, .cotizador-demo textarea { border: 1px solid #94a3b8; border-radius: .3rem; box-sizing: border-box; font: inherit; padding: .5rem; width: 100%; }
.cotizador-demo textarea { resize: vertical; }
.cotizador-demo__controls, .cotizador-demo__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; }
.cotizador-demo__controls select { border: 1px solid #94a3b8; border-radius: .3rem; font: inherit; padding: .45rem; }
.cotizador-demo__controls label { margin-left: .5rem; }
.cotizador-demo__controls label:first-child { margin-left: 0; }
.cotizador-demo__resolution-summary, .cotizador-demo__review { background: #eff6ff; border-left: 3px solid #2563eb; display: grid; gap: .2rem; padding: .65rem; }
.cotizador-demo__resolution-summary span { color: #475569; font-size: .82rem; }
.cotizador-demo__line-filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.cotizador-demo__line-filters button { background: #fff; border: 1px solid #94a3b8; border-radius: 999px; color: #334155; cursor: pointer; font: inherit; font-size: .78rem; min-height: 2rem; padding: .25rem .55rem; }
.cotizador-demo__line-filters button.is-current { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
.cotizador-demo__line-grid { border: 1px solid #cbd5e1; border-radius: .4rem; max-height: 29rem; overflow: auto; }
.cotizador-demo__line-grid-header, .cotizador-demo__line-row { align-items: center; display: grid; gap: .45rem; grid-template-columns: 1.7rem minmax(11rem, 2.2fr) 3.6rem minmax(5.8rem, 1fr) 3.1rem minmax(6.5rem, 1fr); }
.cotizador-demo__line-grid-header { background: #eff6ff; color: #475569; font-size: .7rem; font-weight: 700; padding: .5rem; position: sticky; text-transform: uppercase; top: 0; z-index: 1; }
.cotizador-demo__line-row { background: #fff; border: 0; border-bottom: 1px solid #e2e8f0; color: #1f2937; cursor: pointer; font: inherit; min-height: 3.35rem; padding: .45rem .5rem; text-align: left; width: 100%; }
.cotizador-demo__line-row:hover { background: #f8fafc; }
.cotizador-demo__line-row.is-current { background: #dbeafe; box-shadow: inset 3px 0 #1d4ed8; }
.cotizador-demo__line-row.requires-review { background: #fff7ed; }
.cotizador-demo__line-row.is-discarded { background: #f8fafc; color: #64748b; }
.cotizador-demo__line-number { color: #1d4ed8; font-weight: 800; }
.cotizador-demo__line-description { font-size: .78rem; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.cotizador-demo__line-state { font-size: .72rem; font-weight: 700; line-height: 1.2; }
.cotizador-demo__line-row.requires-review .cotizador-demo__line-state { color: #9a3412; }
.cotizador-demo__line-row.is-ready .cotizador-demo__line-state { color: #166534; }
.cotizador-demo__facts { display: grid; gap: .7rem; margin: 0; }
.cotizador-demo__candidates { border: 0; margin: 0; padding: 0; }
.cotizador-demo__candidate { align-items: flex-start; border: 1px solid #94a3b8; display: flex; gap: .55rem; margin-top: .55rem; padding: .65rem; }
.cotizador-demo__candidate.is-incompatible { background: #fef2f2; border-color: #dc2626; color: #7f1d1d; }
.cotizador-demo__candidate small { display: block; margin-top: .3rem; }
.cotizador-demo__reason { color: #b91c1c; font-weight: 700; }
.cotizador-demo__status { background: #e0f2fe; color: #075985; font-size: .75rem; font-weight: 700; padding: .3rem; }
.cotizador-demo__button { border: 2px solid transparent; border-radius: .35rem; cursor: pointer; font: inherit; font-weight: 700; min-height: 2.5rem; padding: .5rem .75rem; }
.cotizador-demo__button--primary { background: #166534; color: #fff; }
.cotizador-demo__button--secondary { background: #e0f2fe; border-color: #0369a1; color: #0c4a6e; }
.cotizador-demo__success { background: #ecfdf5; border-left: 3px solid #15803d; color: #14532d; margin: 0; padding: .6rem; }
.cotizador-demo__button--danger { background: #b91c1c; color: #fff; }
.cotizador-demo__button:disabled { cursor: not-allowed; opacity: .55; }
.cotizador-demo__error { background: #fef2f2; border-left: 3px solid #b91c1c; color: #7f1d1d; margin: 0; padding: .6rem; }
.cotizador-demo__activity { background: #f8fafc; border: 1px solid #cbd5e1; border-radius: .6rem; margin-top: 1rem; padding: 1rem; }
.cotizador-demo__activity h3 { margin: 0; }
.cotizador-demo__activity ul { margin: .7rem 0 0; padding-left: 1.25rem; }
.cotizador-demo__dialog { background: #fff; border: 2px solid #1d4ed8; border-radius: .6rem; box-shadow: 0 12px 28px rgb(15 23 42 / .25); display: grid; gap: .65rem; left: 50%; max-width: 36rem; padding: 1rem; position: fixed; top: 50%; transform: translate(-50%, -50%); width: calc(100% - 2rem); z-index: 10; }
.cotizador-demo__dialog h3 { margin: 0; }
.cotizador-demo button:focus-visible, .cotizador-demo input:focus-visible, .cotizador-demo select:focus-visible, .cotizador-demo textarea:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
@media (max-width: 1260px) { .cotizador-demo__workspace { grid-template-columns: 1fr; }.cotizador-demo__context { grid-template-columns: repeat(2, minmax(0, 1fr)); }.cotizador-demo__review, .cotizador-demo__button--primary { position: sticky; bottom: 0; }.cotizador-demo__line-grid { max-height: 25rem; } }
@media (max-width: 680px) { .cotizador-demo__line-grid-header, .cotizador-demo__line-row { grid-template-columns: 1.5rem minmax(9rem, 1fr) 3.2rem 4.6rem; }.cotizador-demo__line-grid-header span:nth-child(4), .cotizador-demo__line-grid-header span:nth-child(5), .cotizador-demo__line-row span:nth-child(4), .cotizador-demo__line-row span:nth-child(5) { display: none; }.cotizador-demo__context { grid-template-columns: 1fr; } }
