/* Calculadora rápida flutuante — componente isolado */
.quick-calculator-launcher {
  position: fixed; right: 20px; bottom: 18px; z-index: 310;
  display: grid; width: auto; min-width: 136px; height: 46px; padding: 0 14px 0 11px;
  grid-template-columns: 23px auto; align-items: center; justify-content: center; gap: 7px;
  border: 1px solid rgba(255,255,255,.36); border-radius: 18px; color: #17345d;
  background: linear-gradient(145deg,#ffe91f,#ffd500 72%);
  box-shadow: 0 16px 36px rgba(218,66,18,.35),inset 0 1px rgba(255,255,255,.3);
  cursor: pointer; transition: transform .22s ease,box-shadow .22s ease,background .22s ease;
  animation: quick-calculator-arrive .42s cubic-bezier(.2,.8,.2,1) both;
}
.quick-calculator-launcher:hover { transform: translateY(-4px) scale(1.04); box-shadow: 0 21px 42px rgba(218,66,18,.42),inset 0 1px rgba(255,255,255,.3); }
.quick-calculator-launcher:focus-visible { outline: 3px solid rgba(46,148,255,.45); outline-offset: 4px; }
.quick-calculator-launcher-icon { display: grid; width: 23px; height: 23px; place-items: center; transition: transform .22s ease,opacity .18s ease; }
.quick-calculator-launcher-label { color: #17345d; font-size: .63rem; font-weight: 900; letter-spacing: -.01em; white-space: nowrap; transition: opacity .18s ease,transform .22s ease; }
.quick-calculator-launcher-icon svg,.quick-calculator-heading-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.quick-calculator-launcher-close { position: absolute; opacity: 0; font-size: 2rem; font-weight: 300; line-height: 1; transform: rotate(-70deg) scale(.65); transition: transform .22s ease,opacity .18s ease; }
.quick-calculator-launcher > i {
  position: absolute; top: -5px; right: -4px; min-width: 24px; height: 24px; padding: 0 5px;
  border: 3px solid #f5f7fb; border-radius: 20px; color: #17345d; background: #fff;
  font-size: .54rem; font-style: normal; font-weight: 900; line-height: 18px;
  box-shadow: 0 5px 14px rgba(13,30,57,.16); transition: opacity .18s ease,transform .22s ease;
}
.quick-calculator-launcher.is-open { width: 46px; min-width: 46px; padding: 0; grid-template-columns: 1fr; border-radius: 50%; color: #fff; background: linear-gradient(145deg,#1a3e6d,#102545); box-shadow: 0 16px 38px rgba(7,21,43,.38),inset 0 1px rgba(255,255,255,.2); }
.quick-calculator-launcher.is-open .quick-calculator-launcher-icon { opacity: 0; transform: rotate(70deg) scale(.6); }
.quick-calculator-launcher.is-open .quick-calculator-launcher-label { position: absolute; opacity: 0; transform: translateX(10px); pointer-events: none; }
.quick-calculator-launcher.is-open .quick-calculator-launcher-close { opacity: 1; transform: rotate(0) scale(1); }
.quick-calculator-launcher.is-open > i { opacity: 0; transform: scale(.5); }

.quick-calculator-layer { position: fixed; inset: 0; z-index: 300; pointer-events: none; }
.quick-calculator-panel {
  position: absolute; right: 24px; bottom: 102px; display: flex;
  width: min(490px,calc(100vw - 36px)); max-height: calc(100vh - 128px); flex-direction: column; overflow: hidden;
  border: 1px solid rgba(211,220,232,.95); border-radius: 23px; color: #17243b; background: #fff;
  box-shadow: 0 28px 75px rgba(13,32,63,.25),0 3px 12px rgba(13,32,63,.08);
  pointer-events: auto; animation: quick-calculator-pop .28s cubic-bezier(.2,.8,.2,1) both;
}
.quick-calculator-panel.is-loading .quick-calculator-content { opacity: .66; pointer-events: none; }
.quick-calculator-header { display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px 15px 20px; color: #fff; background: radial-gradient(circle at 85% -35%,rgba(74,154,255,.35),transparent 45%),linear-gradient(125deg,#11284a,#173e70); }
.quick-calculator-heading { display: flex; min-width: 0; align-items: center; gap: 12px; }
.quick-calculator-heading-icon { display: grid; width: 42px; height: 42px; flex: 0 0 auto; padding: 9px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; color: #ff9561; background: rgba(255,255,255,.08); }
.quick-calculator-heading > div { display: grid; gap: 3px; }
.quick-calculator-heading span { color: #80d8ff; font-size: .57rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.quick-calculator-heading h2 { margin: 0; font-size: 1.12rem; letter-spacing: -.025em; }
.quick-calculator-close { display: grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 11px; color: #fff; background: rgba(255,255,255,.07); font-size: 1.35rem; cursor: pointer; transition: background .18s ease,transform .18s ease; }
.quick-calculator-close:hover { background: rgba(255,255,255,.15); transform: rotate(4deg); }
.quick-calculator-content { overflow-y: auto; overscroll-behavior: contain; padding: 17px; scrollbar-width: thin; transition: opacity .18s ease; }

.quick-calculator-intro { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.quick-calculator-intro > div { display: grid; gap: 3px; }
.quick-calculator-intro > div > span { color: #ef5d25; font-size: .53rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.quick-calculator-intro > div > strong { font-size: .79rem; }
.quick-calculator-intro > small { padding: 5px 9px; border-radius: 20px; color: #087959; background: #eaf8f3; font-size: .55rem; font-weight: 800; }
.quick-calculator-intro > button { padding: 5px 0; border: 0; color: #e85620; background: transparent; font: inherit; font-size: .59rem; font-weight: 850; cursor: pointer; }
.quick-calculator-form { display: grid; gap: 11px; padding: 13px; border: 1px solid #e2e8f0; border-radius: 16px; background: #f8fafc; }
.quick-calculator-form label { display: grid; min-width: 0; gap: 6px; }
.quick-calculator-form label > span { color: #65758b; font-size: .57rem; font-weight: 800; }
.quick-calculator-form label > div { display: flex; min-width: 0; overflow: hidden; border: 1px solid #d8e0ea; border-radius: 11px; background: #fff; transition: border-color .18s ease,box-shadow .18s ease; }
.quick-calculator-form label > div:focus-within { border-color: #2d83e6; box-shadow: 0 0 0 3px rgba(45,131,230,.1); }
.quick-calculator-form label b { display: grid; min-width: 46px; place-items: center; color: #315477; background: #edf3f8; font-size: .56rem; letter-spacing: .04em; }
.quick-calculator-form input { width: 100%; min-width: 0; height: 43px; padding: 0 11px; border: 0; outline: 0; color: #142139; background: transparent; font: inherit; font-size: .73rem; font-weight: 750; }
.quick-calculator-price-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.quick-calculator-price-grid label:first-child b { color: #b45a1d; background: #fff2e8; }
.quick-calculator-price-grid label:last-child b { color: #6547c8; background: #f0edff; }
#quick-calculator-submit { display: flex; height: 43px; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(120deg,#f15a24,#ff7835); box-shadow: 0 9px 18px rgba(236,80,26,.19); font: inherit; font-size: .67rem; font-weight: 850; cursor: pointer; transition: transform .18s ease,box-shadow .18s ease; }
#quick-calculator-submit:hover { transform: translateY(-1px); box-shadow: 0 12px 22px rgba(236,80,26,.26); }
#quick-calculator-submit:disabled { cursor: wait; opacity: .75; transform: none; }

.quick-calculator-margin { display: grid; gap: 9px; padding: 11px; border: 1px solid #d9e6f2; border-radius: 13px; background: linear-gradient(135deg,#f3f8fd,#f8fbfe); }
.quick-calculator-margin-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.quick-calculator-margin-heading > div { display: grid; gap: 2px; }
.quick-calculator-margin-heading span { color: #2474c7; font-size: .5rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quick-calculator-margin-heading strong { font-size: .64rem; }
.quick-calculator-margin-heading small { color: #7890a7; font-size: .48rem; }
.quick-calculator-margin-control { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 8px; }
.quick-calculator-margin-control label { display: flex; height: 40px; align-items: center; gap: 6px; padding-left: 9px; border: 1px solid #cfdbe8; border-radius: 10px; background: #fff; }
.quick-calculator-margin-control label > span { color: #6c7d91; font-size: .5rem; font-weight: 800; }
.quick-calculator-margin-control label input { width: 100%; height: 36px; padding: 0; text-align: right; }
.quick-calculator-margin-control label b { min-width: 27px; height: 100%; color: #2474c7; background: #eaf3fc; }
.quick-calculator-margin-control > button { display: flex; align-items: center; justify-content: center; gap: 7px; border: 0; border-radius: 10px; color: #fff; background: linear-gradient(120deg,#1f6fbf,#318be2); font: inherit; font-size: .57rem; font-weight: 850; cursor: pointer; }
.quick-calculator-margin-control > button:hover { filter: brightness(1.06); }
.quick-calculator-margin-presets { display: flex; align-items: center; gap: 6px; }
.quick-calculator-margin-presets > span { margin-right: 2px; color: #8291a3; font-size: .48rem; }
.quick-calculator-margin-presets button { padding: 5px 9px; border: 1px solid #d4e0ec; border-radius: 20px; color: #315a82; background: #fff; font: inherit; font-size: .5rem; font-weight: 800; cursor: pointer; }
.quick-calculator-margin-presets button:hover { color: #fff; border-color: #2c82d7; background: #2c82d7; }
.quick-calculator-pma-apply { display:grid; gap:3px; width:100%; padding:10px 12px; border:1px solid #cfc1fb; border-radius:12px; color:#49358b; background:linear-gradient(120deg,#f7f4ff,#eeeaff); font:inherit; text-align:left; cursor:pointer; }
.quick-calculator-pma-apply:hover { border-color:#8667df; background:linear-gradient(120deg,#f0ebff,#e6ddff); }
.quick-calculator-pma-apply.is-unavailable { cursor:not-allowed; opacity:.65; filter:grayscale(.5); }
.quick-calculator-pma-apply.is-unavailable:hover { border-color:#cfc1fb; background:linear-gradient(120deg,#f7f4ff,#eeeaff); }
.quick-calculator-pma-apply span { color:#7256c8; font-size:.5rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.quick-calculator-pma-apply strong { font-size:.62rem; }

.quick-calculator-empty { display: grid; min-height: 170px; margin-top: 13px; padding: 25px; place-items: center; align-content: center; border: 1px dashed #d7e0eb; border-radius: 16px; text-align: center; background: linear-gradient(145deg,#fbfcfe,#f4f7fb); }
.quick-calculator-empty > span { display: grid; width: 48px; height: 48px; margin-bottom: 10px; place-items: center; border-radius: 15px; color: #ed5d27; background: #fff0e8; font-size: .69rem; font-weight: 900; box-shadow: 0 8px 22px rgba(227,83,29,.1); }
.quick-calculator-empty strong { font-size: .85rem; }
.quick-calculator-empty p { max-width: 340px; margin: 7px 0 0; color: #78869a; font-size: .61rem; line-height: 1.55; }
.quick-calculator-product { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 11px; margin-top: 13px; padding: 12px; border: 1px solid #e1e7ef; border-radius: 15px; background: #fff; }
.quick-calculator-product-image { width: 48px; height: 48px; padding: 4px; border: 1px solid #e2e8f0; border-radius: 12px; object-fit: contain; background: #fff; }
.quick-calculator-product > div:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.quick-calculator-product > div:nth-child(2) > span { color: #0b9068; font-size: .5rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quick-calculator-product > div:nth-child(2) > strong { overflow: hidden; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.quick-calculator-product > div:nth-child(2) > small { color: #8390a1; font-size: .52rem; }
.quick-calculator-product-cost { display: grid; gap: 3px; padding-left: 12px; border-left: 1px solid #e3e9f0; text-align: right; }
.quick-calculator-product-cost span { color: #8290a2; font-size: .5rem; }
.quick-calculator-product-cost strong { font-size: .68rem; }
.quick-calculator-winner { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin-top: 10px; padding: 10px 12px; border: 1px solid #cce9dc; border-radius: 13px; background: linear-gradient(110deg,#edf9f4,#f5fbf8); }
.quick-calculator-winner > span { grid-column: 1/-1; color: #10805f; font-size: .49rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quick-calculator-winner > strong { color: #087052; font-size: .72rem; }
.quick-calculator-winner > small { align-self: center; color: #67877c; font-size: .54rem; text-align: right; }
.quick-calculator-scenarios { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 10px; }
.quick-calculator-scenario { --quick-plan:#e17a2d; overflow: hidden; border: 1px solid #e2e8f0; border-top: 3px solid var(--quick-plan); border-radius: 14px; background: #fff; }
.quick-calculator-scenario.premium { --quick-plan:#7458d7; }
.quick-calculator-scenario.is-winner { box-shadow: 0 10px 24px color-mix(in srgb,var(--quick-plan) 14%,transparent); }
.quick-calculator-scenario-head { display: flex; min-height: 56px; align-items: flex-start; justify-content: space-between; gap: 6px; padding: 10px; background: color-mix(in srgb,var(--quick-plan) 7%,white); }
.quick-calculator-scenario-head > div { display: grid; gap: 3px; }
.quick-calculator-scenario-head span { color: var(--quick-plan); font-size: .5rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.quick-calculator-scenario-head strong { font-size: .7rem; }
.quick-calculator-scenario-head > b { padding: 4px 6px; border-radius: 10px; color: #087354; background: #e6f8f1; font-size: .44rem; white-space: nowrap; }
.quick-calculator-profit { display: grid; grid-template-columns: 1.2fr .8fr; padding: 11px 10px; border-top: 1px solid #edf1f5; border-bottom: 1px solid #edf1f5; }
.quick-calculator-profit > div { display: grid; gap: 3px; }
.quick-calculator-profit > div+div { padding-left: 10px; border-left: 1px solid #e5eaf0; }
.quick-calculator-profit span { color: #7d8a9c; font-size: .48rem; }
.quick-calculator-profit strong { color: var(--quick-plan); font-size: .86rem; }
.quick-calculator-scenario.danger .quick-calculator-profit strong { color: #cf3c4f; }
.quick-calculator-scenario.warning .quick-calculator-profit strong { color: #bd7905; }
.quick-calculator-costs { display: grid; grid-template-columns: repeat(2,1fr); gap: 6px 9px; padding: 10px; }
.quick-calculator-costs span { display: flex; flex-wrap:wrap; justify-content: space-between; gap: 2px 5px; color: #7b899b; font-size: .48rem; }
.quick-calculator-costs b { color: #344157; font-weight: 800; }
.quick-calculator-costs small { width:100%; color:#65768a; font-size:.43rem; font-weight:800; text-transform:uppercase; }
.quick-calculator-quote-state { display: flex; align-items: center; gap: 6px; padding: 8px 10px; color: #6d7d91; background: #f8fafc; font-size: .47rem; font-weight: 700; }
.quick-calculator-quote-state i { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: #19ae7b; box-shadow: 0 0 0 3px rgba(25,174,123,.1); }
.quick-calculator-safety { display: flex; align-items: center; gap: 9px; margin-top: 10px; padding: 10px 12px; border-radius: 12px; color: #0b7557; background: #eef9f5; }
.quick-calculator-safety > span { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #fff; background: #17aa79; font-size: .65rem; font-weight: 900; }
.quick-calculator-safety > div { display: grid; gap: 2px; }
.quick-calculator-safety strong { font-size: .58rem; }
.quick-calculator-safety small { color: #6d8a81; font-size: .49rem; }
.quick-calculator-footer { display: flex; justify-content: center; padding: 14px 0 1px; }
.quick-calculator-footer button { display: flex; align-items: center; gap: 7px; padding: 7px; border: 0; color: #174f88; background: transparent; font: inherit; font-size: .59rem; font-weight: 850; cursor: pointer; }
.quick-calculator-footer button:hover { color: #ee5b25; }

html[data-theme="black"] .quick-calculator-launcher > i { border-color: #080c13; color: #f1f5fb; background: #172130; }
html[data-theme="black"] .quick-calculator-panel { border-color: #253246; color: #e9eef7; background: #0e151f; box-shadow: 0 30px 80px rgba(0,0,0,.62); }
html[data-theme="black"] .quick-calculator-header { background: radial-gradient(circle at 85% -35%,rgba(63,137,230,.25),transparent 45%),linear-gradient(125deg,#101b2c,#132b4b); }
html[data-theme="black"] .quick-calculator-form { border-color: #283548; background: #121c2a; }
html[data-theme="black"] .quick-calculator-form label > span { color: #93a2b7; }
html[data-theme="black"] .quick-calculator-form label > div { border-color: #344258; background: #0d1520; }
html[data-theme="black"] .quick-calculator-form label b { color: #a9bad0; background: #1a2738; }
html[data-theme="black"] .quick-calculator-form input { color: #eef3fb; }
html[data-theme="black"] .quick-calculator-price-grid label:first-child b { color: #f0a16a; background: #2a201c; }
html[data-theme="black"] .quick-calculator-price-grid label:last-child b { color: #b7a6f6; background: #211f34; }
html[data-theme="black"] .quick-calculator-margin { border-color: #29445f; background: linear-gradient(135deg,#132131,#111c29); }
html[data-theme="black"] .quick-calculator-margin-heading span { color: #79baff; }
html[data-theme="black"] .quick-calculator-margin-heading small { color: #8292a6; }
html[data-theme="black"] .quick-calculator-margin-control label { border-color: #34475d; background: #0d1520; }
html[data-theme="black"] .quick-calculator-margin-control label b { color: #8ac3ff; background: #182b3f; }
html[data-theme="black"] .quick-calculator-margin-presets button { color: #a9c7e8; border-color: #34475d; background: #172332; }
html[data-theme="black"] .quick-calculator-pma-apply { border-color:#4c3d83; color:#d6cbff; background:linear-gradient(120deg,#1d1931,#211c3b); }
html[data-theme="black"] .quick-calculator-pma-apply span { color:#b6a6f5; }
html[data-theme="black"] .quick-calculator-empty { border-color: #2b384b; background: linear-gradient(145deg,#121b28,#101721); }
html[data-theme="black"] .quick-calculator-empty > span { color: #ff9864; background: #2a201d; }
html[data-theme="black"] .quick-calculator-empty strong { color: #e8eef7; }
html[data-theme="black"] .quick-calculator-empty p { color: #8998ac; }
html[data-theme="black"] .quick-calculator-product,html[data-theme="black"] .quick-calculator-scenario { border-color: #2a3749; background: #111a26; }
html[data-theme="black"] .quick-calculator-product-image { border-color: #334155; background: #fff; }
html[data-theme="black"] .quick-calculator-product-cost { border-color: #2e3b4d; }
html[data-theme="black"] .quick-calculator-winner { border-color: #245d4e; background: linear-gradient(110deg,#112821,#12221e); }
html[data-theme="black"] .quick-calculator-winner > small { color: #8aa99f; }
html[data-theme="black"] .quick-calculator-scenario-head { background: color-mix(in srgb,var(--quick-plan) 10%,#111a26); }
html[data-theme="black"] .quick-calculator-profit,html[data-theme="black"] .quick-calculator-profit > div+div { border-color: #2a3748; }
html[data-theme="black"] .quick-calculator-costs b { color: #d9e2ef; }
html[data-theme="black"] .quick-calculator-quote-state { color: #91a0b3; background: #0d1520; }
html[data-theme="black"] .quick-calculator-safety { color: #80d6bb; background: #112720; }
html[data-theme="black"] .quick-calculator-safety small { color: #8aa69d; }
html[data-theme="black"] .quick-calculator-footer button { color: #83baf3; }

@keyframes quick-calculator-arrive { from { opacity: 0; transform: translateY(15px) scale(.82); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes quick-calculator-pop { from { opacity: 0; transform: translateY(18px) scale(.965); } to { opacity: 1; transform: translateY(0) scale(1); } }

@media (max-width:640px) {
  .quick-calculator-launcher { right: 14px; bottom: 14px; width: 58px; min-width: 58px; height: 58px; padding: 0; grid-template-columns: 1fr; border-radius: 50%; }
  .quick-calculator-launcher-label { display: none; }
  .quick-calculator-panel { right: 10px; bottom: 82px; width: calc(100vw - 20px); max-height: calc(100vh - 98px); border-radius: 19px; }
  .quick-calculator-content { padding: 13px; }
  .quick-calculator-price-grid,.quick-calculator-scenarios { grid-template-columns: 1fr; }
  .quick-calculator-winner { grid-template-columns: 1fr; }
  .quick-calculator-winner > small { text-align: left; }
}
@media (prefers-reduced-motion:reduce) { .quick-calculator-launcher,.quick-calculator-panel { animation: none!important; } }
