/* Herramientas públicas nuevas (calculadora básica y Biblioteca). Mobile-first, mismo lenguaje que hub.css. */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("/assets/academy/fonts/inter-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500 800; font-display: swap; src: url("/assets/academy/fonts/manrope-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

.tool-page { --t-ink: #081b32; --t-soft: #24384f; --t-muted: #5a6d83; --t-line: rgba(13,55,95,.12); --t-line-strong: rgba(13,55,95,.22); --t-blue: #0b67d9; --t-navy: #0a2a52; --t-teal: #0cafb9; --t-green: #168c6a; --t-amber: #d9971c; --t-coral: #d4505f; --t-violet: #7a5fd3; --t-card: #fff; --t-radius: 18px; --t-display: Manrope, Inter, ui-sans-serif, system-ui, sans-serif; }
.tool-hero { padding: 28px 0 22px; background: linear-gradient(160deg, #f9fcff 0%, #eaf3fc 100%); border-bottom: 1px solid var(--t-line); }
.tool-hero h1 { margin: 10px 0 8px; font-size: clamp(1.85rem, 6.4vw, 3rem); line-height: 1.05; letter-spacing: -.035em; color: var(--t-ink); }
.tool-hero p { max-width: 640px; margin: 0; color: var(--t-muted); font-size: 1.02rem; line-height: 1.55; }
.tool-hero .hub-breadcrumbs { margin-bottom: 14px; }
.tool-section { padding: 22px 0 64px; }

/* ---------- Calculadora ---------- */
.calc-toolbar { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 12px; }
.calc-back { display: grid; grid-template-columns: 22px minmax(0,1fr) 18px; align-items: center; gap: 10px; margin-bottom: 12px; padding: 12px 14px; border: 1px solid rgba(11,103,217,.3); border-radius: 14px; background: #f3f8ff; color: var(--t-soft); font: 500 .9rem/1.45 Inter, sans-serif; text-decoration: none; }
.calc-back:hover { border-color: var(--t-blue); background: #ecf4ff; }
.calc-back strong { color: var(--t-navy); font-weight: 800; }
.calc-back svg { width: 22px; height: 22px; fill: none; stroke: var(--t-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.calc-back svg:last-child { width: 18px; height: 18px; }
.calc-ghost { min-height: 40px; padding: 0 14px; border: 1px solid var(--t-line-strong); border-radius: 999px; background: #fff; color: var(--t-navy); font: 700 .86rem/1 Inter, sans-serif; cursor: pointer; }
.calc-ghost:hover { border-color: var(--t-blue); color: var(--t-blue); }
.calc-layout { display: grid; gap: 14px; }
.calc-form { display: grid; gap: 12px; }
.calc-card { border: 1px solid var(--t-line); border-radius: var(--t-radius); background: var(--t-card); box-shadow: 0 10px 30px rgba(7,35,66,.06); overflow: hidden; }
.calc-card > header { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--t-line); }
.calc-card > header small { display: block; color: var(--t-muted); font: 700 .7rem/1.2 var(--t-display); text-transform: uppercase; letter-spacing: .09em; }
.calc-card > header h2 { margin: 2px 0 0; font-size: 1.12rem; line-height: 1.2; letter-spacing: -.02em; color: var(--t-ink); }
.calc-step { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: #e8f1fe; color: var(--t-blue); }
.calc-step svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.calc-card[data-tone="transport"] .calc-step { background: #e2f7f6; color: #0a8f97; }
.calc-card[data-tone="papers"] .calc-step { background: #fff3dc; color: #a86d00; }
.calc-card[data-tone="buffer"] .calc-step { background: #efeafd; color: var(--t-violet); }
.calc-step--es { background: linear-gradient(180deg, #c60b1e 0 25%, #ffc400 25% 75%, #c60b1e 75%); color: #7a0010; font: 900 .8rem/1 var(--t-display); text-shadow: 0 1px 0 rgba(255,255,255,.4); }
.calc-subtotal { font: 800 1rem/1 var(--t-display); color: var(--t-navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.calc-fields { display: grid; gap: 14px; padding: 16px; }
.calc-field { display: grid; gap: 6px; min-width: 0; align-content: start; }
.calc-field > label { color: var(--t-soft); font-size: .9rem; font-weight: 650; line-height: 1.3; }
.calc-field > label small { margin-left: 4px; padding: 2px 7px; border-radius: 999px; background: #eef3f8; color: var(--t-muted); font-size: .7rem; font-weight: 700; }
.calc-input { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; border: 1.5px solid var(--t-line-strong); border-radius: 13px; background: #fbfdff; transition: border-color .15s, box-shadow .15s; }
.calc-input:focus-within { border-color: var(--t-blue); background: #fff; box-shadow: 0 0 0 4px rgba(11,103,217,.13); }
.calc-input input { width: 100%; min-width: 0; min-height: 50px; padding: 0 14px; border: 0; background: transparent; color: var(--t-ink); font: 700 1.12rem/1 Inter, sans-serif; font-variant-numeric: tabular-nums; }
.calc-input input:focus { outline: none; }
.calc-input input::placeholder { color: #a3b1c2; font-weight: 600; }
.calc-input > span { padding: 0 14px 0 4px; color: var(--t-muted); font-weight: 700; }
.calc-input--small input { min-height: 42px; font-size: 1rem; }
.calc-hint { color: var(--t-muted); font-size: .8rem; line-height: 1.4; }
.calc-co2 { display: grid; grid-template-columns: auto minmax(0, 170px); align-items: center; gap: 6px 10px; margin-top: 4px; padding: 10px 12px; border-radius: 13px; background: #f4f8fd; }
.calc-co2 label { color: var(--t-soft); font-size: .82rem; font-weight: 700; }
.calc-co2-out { grid-column: 1 / -1; margin: 0; color: var(--t-soft); font-size: .82rem; line-height: 1.4; }
.calc-co2 select { width: 100%; min-width: 0; min-height: 42px; padding: 0 10px; border: 1px solid #d5e0ec; border-radius: 11px; background: #fff; color: var(--t-ink); font: 650 .92rem/1.2 Inter, sans-serif; }
.calc-co2 select:focus-visible { outline: 3px solid rgba(14,79,179,.35); outline-offset: 1px; }
.calc-segment { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 16px 16px 0; padding: 4px; border-radius: 14px; background: #eef3f8; }
.calc-segment button { min-height: 44px; border: 0; border-radius: 11px; background: transparent; color: var(--t-muted); font: 750 .92rem/1 Inter, sans-serif; cursor: pointer; }
.calc-segment button[aria-checked="true"] { background: #fff; color: var(--t-navy); box-shadow: 0 2px 8px rgba(7,35,66,.12); }

.calc-result { display: grid; gap: 14px; align-content: start; padding: 20px; border-radius: 22px; background: radial-gradient(120% 90% at 100% 0%, #16457f 0%, #0a2a52 55%, #071d39 100%); color: #fff; box-shadow: 0 24px 60px rgba(7,35,66,.24); }
.calc-total small { display: block; color: rgba(255,255,255,.72); font: 700 .74rem/1.2 var(--t-display); text-transform: uppercase; letter-spacing: .09em; }
.calc-total output { display: block; margin-top: 6px; font: 800 clamp(2.3rem, 11vw, 3.1rem)/1 var(--t-display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.calc-bar { display: flex; height: 12px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.12); }
.calc-bar span { flex: 0 0 0; min-width: 0; transition: flex-basis .35s ease; }
[data-part="car"] { --part: #5aa7ff; } [data-part="transport"] { --part: #35d0c8; } [data-part="papers"] { --part: #ffc35a; } [data-part="buffer"] { --part: #b49cff; }
.calc-bar span { background: var(--part); }
.calc-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.calc-breakdown div { padding: 10px 12px; border-radius: 13px; background: rgba(255,255,255,.07); }
.calc-breakdown dt { display: flex; align-items: center; gap: 7px; color: rgba(255,255,255,.75); font-size: .78rem; font-weight: 650; }
.calc-breakdown dt::before { content: ""; width: 9px; height: 9px; border-radius: 3px; background: var(--part); }
.calc-breakdown dd { margin: 4px 0 0; font: 800 1.05rem/1.1 var(--t-display); font-variant-numeric: tabular-nums; }
.calc-verdict { display: grid; gap: 2px; padding: 14px 16px; border-radius: 15px; }
.calc-verdict[data-tone="good"] { background: rgba(40,199,138,.16); box-shadow: inset 0 0 0 1px rgba(64,224,160,.4); }
.calc-verdict[data-tone="bad"] { background: rgba(255,107,122,.16); box-shadow: inset 0 0 0 1px rgba(255,130,142,.45); }
.calc-verdict[data-tone="warn"] { background: rgba(255,196,77,.16); box-shadow: inset 0 0 0 1px rgba(255,205,100,.45); }
.calc-verdict small { font: 800 .72rem/1.2 var(--t-display); text-transform: uppercase; letter-spacing: .09em; }
.calc-verdict[data-tone="good"] small, .calc-verdict[data-tone="good"] strong { color: #5ff0b5; }
.calc-verdict[data-tone="bad"] small, .calc-verdict[data-tone="bad"] strong { color: #ff9aa5; }
.calc-verdict[data-tone="warn"] small, .calc-verdict[data-tone="warn"] strong { color: #ffd166; }
.calc-verdict strong { font: 800 1.7rem/1.1 var(--t-display); letter-spacing: -.03em; }
.calc-verdict span { color: rgba(255,255,255,.8); font-size: .86rem; }
.calc-note { margin: 0; color: rgba(255,255,255,.62); font-size: .76rem; line-height: 1.5; }
.calc-dock { position: fixed; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); z-index: 30; display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-radius: 16px; background: #0a2a52; color: #fff; box-shadow: 0 16px 40px rgba(7,35,66,.35); transform: translateY(140%); transition: transform .25s ease; pointer-events: none; }
.calc-dock.is-visible { transform: none; }
.calc-dock span { color: rgba(255,255,255,.75); font: 700 .78rem/1 var(--t-display); text-transform: uppercase; letter-spacing: .08em; }
.calc-dock strong { font: 800 1.35rem/1 var(--t-display); font-variant-numeric: tabular-nums; }

@media (min-width: 900px) {
  .tool-hero { padding: 54px 0 40px; }
  .calc-layout { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; gap: 22px; }
  .calc-result { position: sticky; top: 96px; padding: 26px; }
  .calc-fields { grid-template-columns: 1fr 1fr; }
  .calc-field--tax, .calc-card[data-tone="car"] .calc-field { grid-column: 1 / -1; }
  .calc-dock { display: none; }
}
@media (prefers-reduced-motion: reduce) { .calc-bar span, .calc-dock { transition: none; } }

/* ---------- Biblioteca: documentos simulados ---------- */
.bib-hero .hub-kicker { gap: 8px; }
.bib-local { margin: -2px 0 10px !important; color: var(--t-soft) !important; font: 700 1rem/1.3 var(--t-display) !important; }
.bib-when { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.bib-when li { padding: 6px 11px; border-radius: 999px; background: #fff; border: 1px solid var(--t-line); color: var(--t-soft); font-size: .8rem; font-weight: 650; }
.bib-flag { display: inline-block; width: 20px; height: 14px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); vertical-align: -2px; }
.bib-flag--es { background: linear-gradient(#c60b1e 0 25%, #ffc400 25% 75%, #c60b1e 75%); }
.bib-flag--de { background: linear-gradient(#000 0 33.3%, #dd0000 33.3% 66.6%, #ffce00 66.6%); }
.bib-flag--nl { background: linear-gradient(#ae1c28 0 33.3%, #fff 33.3% 66.6%, #21468b 66.6%); }
.bib-flag--be { background: linear-gradient(90deg, #000 0 33.3%, #fae042 33.3% 66.6%, #ed2939 66.6%); }
.bib-flag--eu { background: radial-gradient(circle, #ffcc00 0 18%, transparent 19%), #003399; }

/* El papel */
.doc-paper { --k: 1; position: relative; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); grid-template-rows: repeat(var(--rows), minmax(0, 1fr)); gap: calc(var(--k) * .55cqw); width: 100%; padding: calc(var(--k) * 2.6cqw); container-type: inline-size; overflow: hidden; border-radius: 1.2cqw; background: var(--paper, #f3f6f1); color: #1d2a33; box-shadow: 0 1px 0 rgba(255,255,255,.7) inset, 0 18px 40px rgba(7,35,66,.18), 0 2px 6px rgba(7,35,66,.12); transform-origin: 0 0; transition: transform .5s cubic-bezier(.2,.8,.2,1); isolation: isolate; font-family: Arial, Helvetica, sans-serif; }
.doc-paper::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(120% 80% at 0% 0%, rgba(255,255,255,.55), transparent 55%), radial-gradient(90% 70% at 100% 100%, rgba(0,0,0,.05), transparent 60%); }
.doc-guilloche { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }
.doc--de1 { --paper: #eef3e8; --ink-code: #3f6b52; }
.doc--de2 { --paper: #f6efd6; --ink-code: #7d6420; }
.doc--es1 { --paper: #e8f1ee; --ink-code: #2f6b5d; }
.doc--es2 { --paper: #f4f7fc; --ink-code: #2f5b94; --k: 1.32; }
.doc--nl { --paper: transparent; --ink-code: #24589a; --k: 1.25; box-shadow: none; overflow: visible; }
.doc--nl::after, .doc--nl .doc-guilloche, .doc--nl .doc-watermark { display: none; }
.doc--be { --paper: #f8eaf0; --ink-code: #8a3f58; --k: 1.32; }
.doc--carpass { --paper: #eef6f0; --ink-code: #2f7448; --k: 1.32; }
.doc-card { position: relative; z-index: 0; margin: calc(var(--k) * -1.2cqw); border-radius: 4cqw; background: linear-gradient(135deg, #f4f9ff 0%, #dceafa 55%, #c7dbf3 100%); box-shadow: 0 14px 34px rgba(7,35,66,.2), 0 0 0 1px rgba(36,88,154,.18) inset; overflow: hidden; }
.doc-card::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(115deg, rgba(36,88,154,.07) 0 .4cqw, transparent .4cqw 1.6cqw); }
.doc-card + .doc-card { background: linear-gradient(135deg, #f7f9fb 0%, #e6edf5 100%); }
.doc-subhead { z-index: 1; align-self: end; color: #24589a; font-weight: 800; font-size: calc(var(--k) * 1.5cqw); letter-spacing: .08em; text-transform: uppercase; }

.doc-head { position: relative; z-index: 1; display: flex; align-items: center; gap: calc(var(--k) * 1.6cqw); min-width: 0; }
.doc-flag { position: relative; flex: 0 0 auto; display: grid; place-items: center; width: calc(var(--k) * 6.2cqw); aspect-ratio: .8; border-radius: .8cqw; background: #1d3f99; color: #fff; }
.doc-stars { position: absolute; top: 6%; width: 78%; fill: #ffcc00; }
.doc-flag b { position: relative; margin-top: 52%; font: 800 calc(var(--k) * 1.9cqw)/1 Arial, sans-serif; }
.doc-titles { display: grid; min-width: 0; line-height: 1.15; }
.doc-titles strong { color: #12212b; font: 800 calc(var(--k) * 2.35cqw)/1.1 Arial, sans-serif; letter-spacing: -.01em; text-transform: none; }
.doc-titles em { color: #33464f; font: italic 600 calc(var(--k) * 1.6cqw)/1.2 Arial, sans-serif; }
.doc-titles small { color: #6a7a82; font: 500 calc(var(--k) * 1.2cqw)/1.2 Arial, sans-serif; }

.doc-field { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-auto-rows: min-content; align-content: space-between; column-gap: calc(var(--k) * .6cqw); row-gap: calc(var(--k) * .3cqw); min-width: 0; margin: 0; padding: calc(var(--k) * .45cqw) calc(var(--k) * .7cqw); border: 0; border-top: calc(var(--k) * .14cqw) solid rgba(29,42,51,.28); border-left: calc(var(--k) * .14cqw) solid rgba(29,42,51,.14); border-radius: .25cqw; background: rgba(255,255,255,.34); color: inherit; font: inherit; text-align: left; cursor: pointer; overflow: hidden; transition: background .2s, box-shadow .2s, opacity .2s; }
button.doc-field:hover { background: rgba(255,255,255,.7); }
button.doc-field:focus-visible { outline: .5cqw solid #0b67d9; outline-offset: .2cqw; }
.doc-code { color: var(--ink-code); font: 800 calc(var(--k) * 1.25cqw)/1 Arial, sans-serif; }
.doc-label { align-self: center; padding-right: calc(var(--k) * 2cqw); overflow: hidden; color: #4c5d66; font: 500 calc(var(--k) * 1.02cqw)/1.15 Arial, sans-serif; white-space: nowrap; text-overflow: ellipsis; }
.doc-value { grid-column: 1 / -1; color: #0d1b24; font: 700 calc(var(--k) * 1.75cqw)/1.2 "Courier New", ui-monospace, monospace; letter-spacing: .02em; overflow-wrap: anywhere; }
.doc-field--big .doc-value { font-size: calc(var(--k) * 3cqw); letter-spacing: .04em; }
.doc-field--small .doc-value { font-size: calc(var(--k) * 1.3cqw); }
.doc-field--serial { border: 0; background: transparent; justify-items: end; text-align: right; }
.doc-field--serial .doc-value { color: #c0192c; font-size: calc(var(--k) * 2.6cqw); letter-spacing: .12em; }
.doc-table { grid-column: 1 / -1; align-self: start; display: grid; gap: calc(var(--k) * .35cqw); margin-top: calc(var(--k) * .6cqw); }
.doc-table span { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 1cqw; padding: calc(var(--k) * .45cqw) 0; border-bottom: .1cqw dashed rgba(29,42,51,.25); }
.doc-table i { color: #0d1b24; font: 700 calc(var(--k) * 1.55cqw)/1.2 "Courier New", ui-monospace, monospace; font-style: normal; }
.doc-table i:nth-child(2) { text-align: right; }
.doc-paper--thumb .doc-label { padding-right: 0; }
.doc-pin { position: absolute; top: calc(var(--k) * .35cqw); right: calc(var(--k) * .35cqw); display: grid; place-items: center; width: calc(var(--k) * 1.75cqw); height: calc(var(--k) * 1.75cqw); border-radius: 50%; background: #0a2a52; color: #fff; font: 800 calc(var(--k) * 1cqw)/1 Inter, sans-serif; opacity: .85; }
.doc-field.is-active { background: rgba(255,247,204,.92); box-shadow: 0 0 0 calc(var(--k) * .42cqw) #0b67d9, 0 0 0 calc(var(--k) * 1.2cqw) rgba(11,103,217,.22); z-index: 3; }
.doc-field.is-active .doc-pin { background: #0b67d9; opacity: 1; }
.doc-field.is-dim { opacity: .28; }
.doc-seal { position: relative; z-index: 1; display: grid; place-items: center; color: rgba(38,72,150,.55); pointer-events: none; }
.doc-seal-svg { width: auto; height: 100%; max-width: 100%; transform: rotate(-9deg); }
.doc-watermark { position: absolute; left: 50%; top: 52%; z-index: 4; transform: translate(-50%, -50%) rotate(-17deg); color: rgba(192,25,44,.14); font: 900 calc(var(--k) * 5.2cqw)/1 Arial, sans-serif; letter-spacing: .12em; white-space: nowrap; pointer-events: none; }
.doc-paper--thumb .doc-field { cursor: inherit; }

/* Visor */
.bib-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.bib-viewer, .bib-side { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.bib-viewer { display: grid; gap: 10px; align-content: start; }
.bib-stage { position: relative; overflow: hidden; border-radius: 16px; background: linear-gradient(160deg, #d9e3ee, #c9d6e4); padding: 0; container-type: inline-size; touch-action: pan-y; }
.bib-stage .doc-paper { border-radius: 0; }
.doc--nl { padding: 6cqw; }
.bib-stage .doc--nl { background: linear-gradient(160deg, #d9e3ee, #c9d6e4); }
.bib-controls { display: flex; align-items: center; gap: 8px; }
.bib-round { width: 44px; height: 44px; flex: 0 0 auto; border: 1px solid var(--t-line-strong); border-radius: 50%; background: #fff; color: var(--t-navy); font: 800 1.1rem/1 Inter, sans-serif; cursor: pointer; }
.bib-round:hover { border-color: var(--t-blue); color: var(--t-blue); }
.bib-counter { flex: 1; text-align: center; color: var(--t-muted); font: 700 .86rem/1 var(--t-display); }
.bib-reset { min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: #0a2a52; color: #fff; font: 700 .85rem/1 Inter, sans-serif; cursor: pointer; }
.bib-info { min-height: 120px; padding: 16px; border: 1px solid var(--t-line); border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(7,35,66,.06); }
.bib-info-empty { margin: 0; color: var(--t-muted); font-size: .92rem; line-height: 1.5; }
.bib-info-head { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 12px; }
.bib-info-head strong { display: block; color: var(--t-ink); font: 800 1.08rem/1.25 var(--t-display); }
.bib-info-head small { color: var(--t-muted); font-size: .8rem; font-style: italic; }
.bib-info-value { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #f3f6fa; color: var(--t-ink); font: 700 .95rem/1.4 "Courier New", ui-monospace, monospace; overflow-wrap: anywhere; }
.bib-info-why { margin: 10px 0 0; color: var(--t-soft); font-size: .95rem; line-height: 1.55; }
.bib-code { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 8px; border-radius: 12px; background: #0a2a52; color: #fff; font: 800 .92rem/1 var(--t-display); white-space: nowrap; }

.bib-side { display: grid; gap: 16px; align-content: start; }
.bib-checks { padding: 18px; border-radius: 18px; background: linear-gradient(160deg, #0d3566, #0a2a52); color: #fff; }
.bib-checks h2 { margin: 0 0 10px; color: #fff; font-size: 1.1rem; }
.bib-checks ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.bib-checks li { position: relative; padding-left: 28px; color: rgba(255,255,255,.88); font-size: .92rem; line-height: 1.45; }
.bib-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #35d0c8; color: #06324a; font-size: .72rem; font-weight: 900; }
.bib-fields h2 { margin: 0 0 10px; font-size: 1.15rem; color: var(--t-ink); }
.bib-topics { display: flex; gap: 6px; margin-bottom: 12px; padding-bottom: 4px; overflow-x: auto; scrollbar-width: none; }
.bib-topics button { flex: 0 0 auto; min-height: 38px; padding: 0 13px; border: 1px solid var(--t-line-strong); border-radius: 999px; background: #fff; color: var(--t-soft); font: 700 .82rem/1 Inter, sans-serif; cursor: pointer; }
.bib-topics button[aria-pressed="true"] { border-color: #0a2a52; background: #0a2a52; color: #fff; }
.bib-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bib-item { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 12px; width: 100%; padding: 12px; border: 1px solid var(--t-line); border-radius: 14px; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.bib-item:hover { border-color: var(--t-blue); }
.bib-item.is-active { border-color: var(--t-blue); box-shadow: 0 0 0 3px rgba(11,103,217,.14); }
.bib-item .bib-code { background: #e8f1fe; color: var(--t-blue); }
.bib-item strong, .bib-item small, .bib-item-value, .bib-item-why, .bib-info-head small { overflow-wrap: anywhere; }
.bib-item-copy { display: grid; gap: 2px; min-width: 0; }
.bib-item-copy strong { color: var(--t-ink); font: 750 .96rem/1.3 var(--t-display); }
.bib-item-copy small { color: var(--t-muted); font-size: .78rem; font-style: italic; }
.bib-item-value { margin-top: 4px; color: var(--t-ink); font: 700 .86rem/1.3 "Courier New", ui-monospace, monospace; overflow-wrap: anywhere; }
.bib-item-why { margin-top: 4px; color: var(--t-soft); font-size: .86rem; line-height: 1.5; }
.bib-pager { display: grid; gap: 8px; margin-top: 26px; }
.bib-pager a { display: grid; gap: 3px; padding: 14px 16px; border: 1px solid var(--t-line); border-radius: 14px; background: #fff; color: var(--t-ink); text-decoration: none; }
.bib-pager a:hover { border-color: var(--t-blue); }
.bib-pager small { color: var(--t-muted); font-weight: 700; font-size: .78rem; }
.bib-pager strong { font-size: .95rem; }
.bib-disclaimer { margin: 18px 0 0; color: var(--t-muted); font-size: .8rem; line-height: 1.5; }

/* Portada de la Biblioteca */
.bib-key { display: grid; gap: 16px; margin-bottom: 30px; padding: 20px; border-radius: 22px; background: radial-gradient(120% 100% at 100% 0%, #16457f 0%, #0a2a52 60%, #071d39 100%); color: #fff; }
.bib-key h2 { margin: 8px 0; color: #fff; font-size: clamp(1.35rem, 5vw, 1.9rem); line-height: 1.15; }
.bib-key p { margin: 0; color: rgba(255,255,255,.82); line-height: 1.55; }
.bib-key .hub-kicker { color: #6de4ee; }
.bib-key-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bib-key-list li { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; background: rgba(255,255,255,.07); }
.bib-key-list .bib-code { background: #ffc35a; color: #3a2600; }
.bib-key-list strong { display: block; font-size: .95rem; }
.bib-key-list small { color: rgba(255,255,255,.72); font-size: .82rem; }
.bib-group { margin-top: 26px; }
.bib-group h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: var(--t-ink); font-size: 1.25rem; }
.bib-grid { display: grid; gap: 12px; }
.bib-card { display: grid; overflow: hidden; border: 1px solid var(--t-line); border-radius: 18px; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 10px 30px rgba(7,35,66,.06); transition: transform .2s, box-shadow .2s; }
.bib-card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(7,35,66,.12); }
.bib-card-media { display: grid; place-items: center; height: 200px; padding: 18px; overflow: hidden; background: linear-gradient(160deg, #e3ebf4, #cfdbe8); container-type: size; }
.bib-card-media .doc-paper { width: auto; height: 100%; max-width: 100%; transform: rotate(-2deg); pointer-events: none; }
.bib-card-media .doc--nl { padding: 4cqw; }
.bib-card-copy { display: grid; gap: 3px; padding: 14px 16px 16px; }
.bib-card-copy small { display: flex; align-items: center; gap: 7px; color: var(--t-muted); font-weight: 700; font-size: .78rem; }
.bib-card-copy strong { color: var(--t-ink); font-size: 1.05rem; }
.bib-card-copy em { color: var(--t-muted); font-size: .86rem; }
.bib-card-cta { margin-top: 6px; color: var(--t-blue); font-weight: 750; font-size: .88rem; }

@media (min-width: 700px) {
  .bib-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bib-pager { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bib-key { grid-template-columns: 1fr 1fr; align-items: center; padding: 28px; }
}
@media (min-width: 1000px) {
  .bib-layout { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 26px; align-items: start; }
  .bib-viewer { position: sticky; top: 92px; }
  .bib-viewer.is-tall { position: static; }
  .bib-viewer.is-tall.has-field .bib-stage { max-height: max(320px, calc(100vh - 340px)); }
  .bib-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .doc-paper, .bib-card { transition: none; } }
.tool-page [hidden] { display: none !important; }
@media (max-width: 760px) { body.has-hub-mobile-nav .calc-dock { bottom: calc(76px + env(safe-area-inset-bottom)); } }

/* Biblioteca · enlace a plantillas */
.bib-extra { display: grid; gap: 4px; margin-top: 28px; padding: 18px 20px; border: 1px solid var(--t-line); border-radius: var(--t-radius); background: linear-gradient(150deg, #fff, #eef5fd); color: inherit; text-decoration: none; }
.bib-extra strong { color: var(--t-ink); font: 800 1.15rem/1.2 var(--t-display); }
.bib-extra span:last-child { color: var(--t-muted); }
.bib-extra:hover { border-color: var(--t-line-strong); }

/* Preguntas al vendedor */
.q-layout { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
.q-blocks { display: grid; gap: 14px; min-width: 0; }
.q-block { padding: 16px; border: 1px solid var(--t-line); border-radius: var(--t-radius); background: #fff; }
.q-block-head h2 { margin: 0; color: var(--t-ink); font: 800 1.15rem/1.2 var(--t-display); }
.q-block-head p { margin: 4px 0 10px; color: var(--t-muted); font-size: .9rem; }
.q-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.q-item { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px; border-radius: 12px; cursor: pointer; }
.q-item:hover { background: #f3f8fd; }
.q-item input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--t-blue); }
.q-item strong { display: block; color: var(--t-ink); font-weight: 650; }
.q-item [lang="de"] { display: block; margin-top: 2px; color: var(--t-muted); font-size: .88rem; font-style: italic; }
.q-output { display: grid; gap: 10px; padding: 16px; border-radius: var(--t-radius); background: var(--t-navy); color: #fff; box-shadow: 0 18px 40px rgba(7,35,66,.25); }
.q-output .hub-kicker { color: #9fd0ff; }
.q-output-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.q-lang { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255,255,255,.12); }
.q-lang button { padding: 6px 12px; border: 0; border-radius: 999px; background: none; color: #fff; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.q-lang button[aria-pressed="true"] { background: #fff; color: var(--t-navy); }
.q-output pre { margin: 0; overflow: auto; padding: 12px; border-radius: 12px; background: rgba(255,255,255,.08); white-space: pre-wrap; font: 500 .88rem/1.45 Inter, ui-sans-serif, system-ui, sans-serif; }
.q-note { margin: 0; color: rgba(255,255,255,.7); font-size: .78rem; }
.q-dock { position: sticky; bottom: calc(12px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px; border-radius: 999px; background: var(--t-navy); color: #fff; box-shadow: 0 14px 34px rgba(7,35,66,.3); }
.q-dock span { order: -1; font-weight: 700; font-size: .9rem; }
body.has-hub-mobile-nav .q-dock { bottom: calc(76px + env(safe-area-inset-bottom)); }
@media (min-width: 900px) {
  .q-dock { display: none; }
  .q-layout { grid-template-columns: minmax(0, 1fr) 380px; align-items: start; }
  .q-output { position: sticky; top: 96px; grid-row: 1 / span 2; grid-column: 2; }
  .q-output pre { max-height: 50vh; }
}

/* Biblioteca · documentos fieles por caras (dibujo a escala en mm + zonas táctiles en %) */
.bib-versions { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.bib-versions button { display: grid; gap: 2px; flex: 1 0 auto; min-height: 44px; padding: 8px 14px; border: 1px solid var(--t-line-strong); border-radius: 999px; background: #fff; color: var(--t-soft); font: inherit; text-align: left; cursor: pointer; }
.bib-versions button strong { font: 750 .86rem/1.2 var(--t-display); }
.bib-versions button small { color: var(--t-muted); font-size: .72rem; }
.bib-versions button[aria-selected="true"] { border-color: var(--t-blue); background: #e8f1fe; color: var(--t-ink); }
.bib-version-note { margin: 0; color: var(--t-muted); font-size: .82rem; line-height: 1.45; }
.bib-faces { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.bib-faces button { display: grid; gap: 2px; flex: 1 0 auto; min-height: 44px; padding: 8px 14px; border: 1px solid var(--t-line-strong); border-radius: 12px; background: #fff; color: var(--t-soft); font: inherit; text-align: left; cursor: pointer; }
.bib-faces button strong { font: 750 .88rem/1.2 var(--t-display); }
.bib-faces button small { color: var(--t-muted); font-size: .74rem; }
.bib-faces button[aria-selected="true"] { border-color: #0a2a52; background: #0a2a52; color: #fff; }
.bib-faces button[aria-selected="true"] small { color: rgba(255,255,255,.75); }
.bib-faces button[hidden], .bib-version-note[hidden] { display: none; }
.bib-viewer.has-field .bib-version-note { display: none; }
.bib-back { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid rgba(11,103,217,.3); border-radius: 14px; background: #f3f8ff; color: var(--t-soft); font: 500 .9rem/1.45 Inter, sans-serif; text-decoration: none; }
.bib-back:hover { border-color: var(--t-blue); background: #ecf4ff; }
.bib-back strong { color: var(--t-navy); font-weight: 800; overflow-wrap: anywhere; }
.bib-back svg { width: 20px; height: 20px; fill: none; stroke: var(--t-blue); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bib-stage--faces { background: #5b6670; }
.doc-face { --doc-paper: #e6ece0; --doc-paper-a: #ece4da; --doc-paper-b: #efe6d8; --doc-wave: rgba(96,128,104,.16); --doc-ink: #4f6b57; --doc-rule: #7d9282; --doc-faint: #8d9c90; --doc-typed: #14181a; position: relative; display: block; width: 100%; transform-origin: 0 0; transition: transform .5s cubic-bezier(.2,.8,.2,1); font-family: Arial, Helvetica, sans-serif; }
/* Teil I alemán: tinta verde y papel casi blanco con velo rosado, colores medidos en el modelo oficial. */
.doc-face.doc--de1 { --doc-paper: #eef3ea; --doc-paper-a: #f6f0ea; --doc-paper-b: #f4efe8; --doc-wave: rgba(214,150,120,.13); --doc-ink: #4b8d36; --doc-rule: #6aa552; --doc-faint: #8aa58a; }
.doc-face.doc--nl1 { --doc-paper: #e2f3ea; --doc-paper-a: #d8eeeb; --doc-paper-b: #e9f5e2; --doc-wave: rgba(70,170,200,.13); --doc-ink: #2f78c4; --doc-rule: #7fb7d8; --doc-faint: #7fa9a0; --doc-typed: #1d1d1b; }
.doc-face.doc--nl1 .doc-typed { font-family: Arial, Helvetica, sans-serif; font-weight: 400; }
.doc-face.doc--be1 { --doc-paper: #f4c89a; --doc-paper-a: #f2c393; --doc-paper-b: #f6cfa4; --doc-wave: rgba(190,110,60,.12); --doc-ink: #3b3631; --doc-rule: #4a423b; --doc-faint: #8f7a66; --doc-typed: #141210; }
.doc-face.doc--be1 .doc-typed { font-family: Arial, Helvetica, sans-serif; }
/* Tarjeta ITV española: papel celeste y tinta negra, como el impreso real (sin su fondo de microtexto). */
.doc-face.doc--es3 { --doc-paper: #c9ecf4; --doc-paper-a: #d3f0f6; --doc-paper-b: #c2e8f1; --doc-wave: rgba(60,150,185,.14); --doc-ink: #111; --doc-rule: #2b3438; --doc-faint: #5f7a84; --doc-typed: #0d0f10; }
.doc-face.doc--es3 .doc-typed { font-family: Arial, Helvetica, sans-serif; }
/* Permiso de circulación español: papel verde agua y tinta azul, como el impreso real (sin su fondo de seguridad). */
.doc-face.doc--es4 { --doc-paper: #dff4ea; --doc-paper-a: #e8f8f1; --doc-paper-b: #d6efe5; --doc-wave: rgba(70,160,130,.16); --doc-ink: #2f4f98; --doc-rule: #4d66a3; --doc-faint: #6f8a9a; --doc-typed: #111; }
.doc-face.doc--es4 .doc-typed { font-family: Arial, Helvetica, sans-serif; font-weight: 400; }
.doc-face.doc--plain { --doc-paper: #fff; --doc-paper-a: #fff; --doc-paper-b: #fafbfc; --doc-wave: transparent; --doc-ink: #1f2933; --doc-rule: #9aa5b1; --doc-faint: #8a94a0; --doc-typed: #111; }
.doc-face.doc--plain .doc-typed { font-family: Arial, Helvetica, sans-serif; font-weight: 400; }
.doc-face[hidden] { display: none; }
.doc-face-svg { display: block; width: 100%; height: 100%; font-family: Arial, Helvetica, sans-serif; }
.doc-face-svg .doc-typed { fill: var(--doc-typed); font-family: "Courier New", Courier, ui-monospace, monospace; font-weight: 700; }
.doc-face-svg .doc-mono { font-family: "Courier New", Courier, ui-monospace, monospace; }
.doc-face-svg .doc-fold { stroke: rgba(0,0,0,.16); stroke-width: .25; stroke-dasharray: 1.2 1; }
.doc-face-svg .doc-mark { fill: rgba(192,25,44,.13); font-weight: 900; letter-spacing: .4px; pointer-events: none; }
.doc-zone { position: absolute; z-index: 1; margin: 0; padding: 0; border: 1px dotted rgba(11,103,217,.2); border-radius: 1px; background: transparent; cursor: pointer; transition: background .2s, box-shadow .2s, opacity .2s; }
.doc-zone:hover { background: rgba(11,103,217,.14); }
.doc-zone:focus-visible { outline: 2px solid #0b67d9; outline-offset: 1px; }
.doc-zone-pin { position: absolute; top: 0; left: 0; transform: translate(-20%, -110%); background: #0a2a52; color: #fff; font: 800 calc(11px / var(--zoom, 1))/1 Inter, sans-serif; padding: calc(2px / var(--zoom, 1)) calc(4px / var(--zoom, 1)); border-radius: calc(3px / var(--zoom, 1)); white-space: nowrap; opacity: 0; transition: opacity .2s; pointer-events: none; }
.doc-zone:hover .doc-zone-pin, .doc-zone.is-active .doc-zone-pin { opacity: 1; }
.doc-zone.is-active { z-index: 3; border: calc(2px / var(--zoom, 1)) solid #0b67d9; background: rgba(255,236,120,.28); box-shadow: 0 0 0 200vmax rgba(8,20,32,.42); }
.doc-zone.is-dim { opacity: .25; }
.bib-stage--faces.is-zoomed .doc-zone:not(.is-active) { border-color: transparent; background: transparent; }
.doc-face--thumb { width: 100%; height: auto; max-height: 100%; box-shadow: 0 10px 26px rgba(7,35,66,.22); transform: rotate(-2deg); }
.bib-card-media .doc-face--thumb { width: auto; height: 100%; max-width: 100%; }
.bib-info-why b { color: var(--t-ink); }
@media (prefers-reduced-motion: reduce) { .doc-face { transition: none; } }

/* Contrato de compraventa con un particular (Biblioteca y curso) */
.k-layout { display: grid; gap: 18px; }
.k-checks, .k-spain { padding: 16px 18px; border: 1px solid var(--t-line); border-radius: var(--t-radius); background: #fff; }
.k-checks h2, .k-spain h2 { margin: 4px 0 10px; color: var(--t-ink); font: 800 1.15rem/1.2 var(--t-display); }
.k-checks ul, .k-spain ul { margin: 0; padding-left: 20px; display: grid; gap: 6px; color: var(--t-soft); }
.k-contract { padding: 18px; border: 1px solid var(--t-line-strong); border-radius: var(--t-radius); background: #fff; }
.k-contract h2 { display: grid; gap: 2px; margin: 0 0 14px; color: var(--t-ink); font: 800 1.2rem/1.25 var(--t-display); }
.k-contract h2 [lang="de"], .k-table [lang="de"] { display: block; color: var(--t-muted); font-weight: 500; font-style: italic; font-size: .9em; }
.k-scroll { overflow-x: auto; }
.k-table { width: 100%; border-collapse: collapse; min-width: 0; }
.k-table th, .k-table td { padding: 8px 10px; border-top: 1px solid var(--t-line); text-align: left; vertical-align: top; font-size: .92rem; }
.k-table th { font-weight: 600; color: var(--t-ink); width: 60%; }
.k-table th span { display: block; }
.k-table .k-section th { padding-top: 16px; border-top: 2px solid var(--t-line-strong); font: 800 1rem/1.25 var(--t-display); color: var(--t-navy); }
.k-blank { display: block; min-height: 26px; border-bottom: 1.5px dotted #8a98ab; }
.k-note { margin: 14px 0 0; color: var(--t-muted); font-size: .85rem; }
@media (max-width: 599px) { .k-table th { width: 55%; } .k-table th, .k-table td { padding: 8px 6px; font-size: .86rem; } }
@media print { .k-checks, .k-spain, .curso-topbar, .curso-sidebar, .curso-footer { display: none !important; } .k-contract { border: 0; } }
/* Temas de la Biblioteca (temas.js): orientación + enlaces, en la web pública y dentro del curso. */
.k-topics { display: grid; gap: 18px; }
.k-topic-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.k-topic-nav a { display: inline-block; padding: 8px 12px; border: 1px solid var(--t-line-strong); border-radius: 999px; background: #fff; color: var(--t-ink); text-decoration: none; font-size: 0.92rem; }
.k-topic { padding: 18px; border: 1px solid var(--t-line-strong); border-radius: var(--t-radius); background: #fff; display: grid; gap: 14px; }
.k-topic header h2 { margin: 4px 0 8px; color: var(--t-ink); font: 800 1.25rem/1.2 var(--t-display); }
.k-topic header p, .k-topic dd { margin: 0; color: var(--t-soft); line-height: 1.5; }
.k-topic__kinds { margin: 0; display: grid; gap: 6px; padding: 12px 14px; border-radius: 10px; background: var(--t-surface, #f6f4ef); }
.k-topic__kinds dt { font-weight: 700; color: var(--t-ink); font-size: 0.9rem; }
.k-topic__kinds dd + dt { margin-top: 6px; }
.k-topic__list h3 { margin: 0 0 6px; font-size: 0.95rem; color: var(--t-ink); }
.k-topic__list ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.k-topic__note { color: var(--t-soft); font-size: 0.9rem; }
@media (min-width: 900px) { .k-topic__lists { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } }


/* Calculadora 2026: modos básico y avanzado, mismos tokens de diseño. */
.calc-v2-toolbar { flex-wrap:wrap; align-items:center; }
.calc-v2-tabs { display:flex; flex:1 1 280px; padding:4px; gap:4px; border-radius:14px; background:#eef3f8; }
.calc-v2-tabs button { flex:1; padding:11px 13px; min-height:44px; border:0; border-radius:11px; background:transparent; font:750 .88rem/1.3 Inter,sans-serif; color:var(--t-muted); cursor:pointer; }
.calc-v2-tabs button[aria-pressed="true"] { color:var(--t-navy); background:#fff; box-shadow:0 2px 8px rgba(7,35,66,.12); }
.calc-v2-link { display:inline-block; width:max-content; max-width:100%; padding:2px 0; border:0; background:none; color:var(--t-blue); font:700 .81rem/1.4 Inter,sans-serif; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.calc-v2-fuel { border:1px solid var(--t-line); border-radius:12px; padding:10px 12px; background:#f4f8fd; }
.calc-v2-fuel summary { cursor:pointer; color:var(--t-navy); font-size:.82rem; font-weight:700; }
.calc-v2-fuel-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin-top:12px; }
.calc-v2-fuel-grid label { display:grid; gap:5px; color:var(--t-soft); font-size:.77rem; font-weight:700; }
.calc-v2-fuel-grid input,.calc-v2-add input,.calc-v2-row input,.calc-v2-row select { min-width:0; width:100%; padding:9px 10px; border:1px solid var(--t-line-strong); border-radius:9px; background:#fff; color:var(--t-ink); font:600 .89rem/1.3 Inter,sans-serif; }
.calc-v2-fuel-grid p { grid-column:1/-1; margin:0; color:var(--t-navy); font-size:.86rem; }
.calc-v2-advanced { display:grid; gap:14px; min-width:0; }
.calc-v2-info { margin:0; border-radius:12px; padding:13px; background:#f3f7fd; color:var(--t-soft); font-size:.83rem; line-height:1.5; }
.calc-v2-group { border:1px solid var(--t-line); border-radius:15px; background:#fff; overflow:hidden; }
.calc-v2-group summary { display:flex; justify-content:space-between; gap:12px; cursor:pointer; padding:15px; color:var(--t-navy); font-size:.95rem; }
.calc-v2-group summary span { font-variant-numeric:tabular-nums; white-space:nowrap; }
.calc-v2-rows { display:grid; padding:0 12px 12px; }
.calc-v2-row { display:grid; grid-template-columns:minmax(150px,1.5fr) minmax(85px,.65fr) minmax(110px,.65fr) minmax(130px,1fr); gap:7px; align-items:center; padding:8px 0; border-top:1px solid var(--t-line); }
.calc-v2-row.is-off { opacity:.7; }
.calc-v2-check { display:flex; align-items:center; gap:9px; min-width:0; font-size:.81rem; font-weight:650; color:var(--t-navy); }
.calc-v2-check input { flex:0 0 auto; width:17px; height:17px; accent-color:var(--t-blue); }
.calc-v2-row .calc-input { border-radius:9px; }
.calc-v2-row .calc-input input { min-height:40px; padding:7px 9px; font-size:.89rem; }
.calc-v2-row .calc-input>span { padding:0 8px 0 2px; }
.calc-v2-row .calc-v2-link { font-size:.7rem; }
.calc-v2-add { display:flex; flex-wrap:wrap; align-items:center; gap:8px; border:1px dashed var(--t-line-strong); border-radius:13px; padding:14px; }
.calc-v2-add label { width:100%; color:var(--t-navy); font-size:.85rem; font-weight:700; }
.calc-v2-add input { flex:1 1 160px; }
@media(max-width:750px) {
 .calc-v2-row { grid-template-columns:minmax(0,1fr) minmax(100px,130px); gap:7px; }
 .calc-v2-check { grid-column:1/-1; }
 .calc-v2-note-input { grid-column:1/-1; }
 .calc-v2-tabs { flex-basis:100%; }
 .calc-v2-row select { min-height:40px; }
}

/* Cabecera de la calculadora: modos centrados y acciones secundarias debajo. */
.calc-v2-toolbar { justify-content:center; margin:0 auto 12px; }
.calc-v2-toolbar .calc-v2-tabs { flex:0 1 600px; width:100%; max-width:600px; }
.calc-v2-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:9px; margin:0 0 18px; }
.calc-v2-actions .calc-ghost { min-height:42px; padding:10px 16px; }
.calc-v2-notice { padding:11px 14px; border-radius:12px; border:1px solid #caddeb; background:#eff7fd; color:#173b60; font-size:.86rem; margin:0 0 12px; }
.calc-v2-notice[hidden] { display:none; }
@media(max-width:640px) {
  .calc-v2-toolbar .calc-v2-tabs { flex:1 1 100%; max-width:100%; }
  .calc-v2-tabs button { padding:12px 6px; font-size:.82rem; }
  .calc-v2-actions .calc-ghost { flex:1 1 auto; font-size:.8rem; padding:9px; }
}
