    /* the calculator, opened from "New" in the top bar (decision 9.98): under the top bar on the right, a sheet on phones */
    .dfab { position: fixed; top: 0; right: 0; z-index: 35; }
    .dfab [x-cloak] { display: none !important; }
    body:has(.fi-modal-open) .dfab, .dealer-search-open .dfab { display: none; }
    .dfab-scrim { position: fixed; inset: 0; z-index: -1; background: rgb(15 15 20 / .25); }
    @keyframes dfab-pop { from { opacity: 0; transform: translateY(-.5rem) scale(.97); } }

    /* calculator */
    .dfab-calc {
        position: fixed; top: 4.5rem; right: calc(env(safe-area-inset-right, 0px) + 1rem); width: 20rem; max-height: calc(100dvh - 5.5rem); overflow-y: auto; padding: .85rem; border-radius: var(--dui-radius, 1.1rem); background: #fff;
        box-shadow: 0 24px 48px -12px rgb(0 0 0 / .3), 0 0 0 1px rgb(0 0 0 / .06);
    }
    .dark .dfab-calc { background: var(--gray-900); box-shadow: 0 24px 48px -12px rgb(0 0 0 / .7), 0 0 0 1px rgb(255 255 255 / .08); }
    .dfab-calc-enter { animation: dfab-pop .2s cubic-bezier(.2, .8, .2, 1); }
    .dfab-calc-leave { animation: dfab-pop .15s ease-in reverse; }
    .dfab-calc-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; font-size: .75rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-500); }
    .dfab-x { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: var(--dui-radius-control, .45rem); color: var(--gray-500); }
    .dfab-x:hover { background: rgb(0 0 0 / .05); color: var(--gray-800); }
    .dark .dfab-x:hover { background: rgb(255 255 255 / .06); color: var(--gray-100); }
    .dfab-x svg { width: 1.1rem; height: 1.1rem; }
    .dfab-screen { padding: .6rem .75rem .55rem; margin-bottom: .6rem; border-radius: var(--dui-radius-md, .75rem); background: var(--gray-50); text-align: right; }
    .dark .dfab-screen { background: rgb(255 255 255 / .04); }
    .dfab-expr { min-height: 1.1rem; font-size: .8125rem; color: var(--gray-500); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
    .dfab-result { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; font-size: 1.85rem; font-weight: 650; line-height: 1.2; color: var(--gray-950); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
    .dark .dfab-result { color: #fff; }
    .dfab-copy { flex: none; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: var(--dui-radius-control, .45rem); color: var(--gray-400); }
    .dfab-copy:hover { color: var(--gray-700); background: rgb(0 0 0 / .05); }
    .dfab-copy svg { width: 1rem; height: 1rem; }
    .dfab-note { margin-top: .15rem; font-size: .75rem; color: var(--primary-700); }
    .dark .dfab-note { color: var(--primary-300); }
    .dfab-vat { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; margin-bottom: .45rem; }
    .dfab-vat button { padding: .45rem .25rem; border-radius: var(--dui-radius-control, .55rem); font-size: .75rem; font-weight: 600; color: var(--primary-700); background: color-mix(in oklab, var(--primary-500) 10%, transparent); }
    .dfab-vat button:hover { background: color-mix(in oklab, var(--primary-500) 16%, transparent); }
    .dark .dfab-vat button { color: var(--primary-300); }
    .dfab-keys { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; }
    .dfab-keys button { height: 3rem; border-radius: var(--dui-radius-md, .7rem); font-size: 1.1rem; font-weight: 550; color: var(--gray-900); background: rgb(0 0 0 / .04); transition: background-color .1s, transform .08s; }
    .dfab-keys button:hover { background: rgb(0 0 0 / .07); }
    .dfab-keys button:active { transform: scale(.96); }
    .dark .dfab-keys button { color: var(--gray-100); background: rgb(255 255 255 / .06); }
    .dark .dfab-keys button:hover { background: rgb(255 255 255 / .1); }
    .dfab-keys .dfab-fn { color: var(--gray-600); font-size: 1rem; }
    .dark .dfab-keys .dfab-fn { color: var(--gray-300); }
    .dfab-keys .dfab-op { color: var(--primary-700); background: color-mix(in oklab, var(--primary-500) 10%, transparent); }
    .dark .dfab-keys .dfab-op { color: var(--primary-300); }
    .dfab-keys .dfab-eq { color: #fff; background: var(--primary-600); }
    .dfab-keys .dfab-eq:hover { background: var(--primary-700); }

    @media (max-width: 639px) {
        .dfab-calc { position: fixed; top: auto; left: 0; right: 0; bottom: 0; width: auto; padding: 1rem 1rem calc(env(safe-area-inset-bottom, 0px) + 1rem); border-radius: var(--dui-radius, 1.25rem) var(--dui-radius, 1.25rem) 0 0; }
        .dfab-calc-enter { animation-name: dfab-sheet; }
        .dfab-calc-leave { animation: dfab-sheet .15s ease-in reverse; }
        .dfab-keys button { height: 3.25rem; }
        @keyframes dfab-sheet { from { transform: translateY(100%); } }
    }
    @media print { .dfab { display: none; } }
    @media (prefers-reduced-motion: reduce) { .dfab *, .dfab-calc-enter, .dfab-calc-leave { animation: none !important; transition: none !important; } }
