    .dealer-modal-full-btn { position: absolute; top: var(--dealer-full-top, 1rem); inset-inline-end: var(--dealer-full-end, 3.25rem); z-index: 30; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--dui-radius-control, .5rem); color: rgb(156 163 175); cursor: pointer; }
    .dealer-modal-full-btn:hover { color: rgb(107 114 128); background: rgb(0 0 0 / .05); }
    .dark .dealer-modal-full-btn:hover { color: rgb(209 213 219); background: rgb(255 255 255 / .05); }
    .fi-modal-window:not(.fi-modal-window-has-close-btn) .dealer-modal-full-btn { inset-inline-end: 1rem; }
    .fi-modal-header:has(> .dealer-modal-full-btn) { padding-inline-end: 6.25rem; }
    .fi-modal-window:not(.fi-modal-window-has-close-btn) .fi-modal-header:has(> .dealer-modal-full-btn) { padding-inline-end: 3.75rem; }
    .dealer-modal-full-btn svg { width: 1.25rem; height: 1.25rem; }
    .dealer-modal-full-btn .dealer-in { display: none; }
    .fi-modal.dealer-modal-full .dealer-modal-full-btn .dealer-in { display: block; }
    .fi-modal.dealer-modal-full .dealer-modal-full-btn .dealer-out { display: none; }

    .fi-modal.dealer-modal-full > .fi-modal-window-ctn { grid-template-rows: 1fr !important; padding: 0 !important; }
    .fi-modal.fi-modal-slide-over.dealer-modal-full > .fi-modal-window-ctn > .fi-modal-window { width: 100vw !important; max-width: none !important; }
    .fi-modal.dealer-modal-full > .fi-modal-window-ctn > .fi-modal-window { width: 100vw !important; max-width: none !important; min-height: 100dvh; max-height: 100dvh !important; margin: 0 !important; border-radius: 0!important; overflow-y: auto; }

    /* Panels from the side (13.11.2026): they sit flush at the screen edge; the corners on the screen side are square,
       only the corners facing the page are rounded. */
    .fi-modal.fi-modal-slide-over.fi-modal-slide-over-from-end > .fi-modal-window-ctn > .fi-modal-window { border-start-end-radius: 0; border-end-end-radius: 0; }
    .fi-modal.fi-modal-slide-over.fi-modal-slide-over-from-start > .fi-modal-window-ctn > .fi-modal-window { border-start-start-radius: 0; border-end-start-radius: 0; }

    /* Document workspace and signing windows: full screen on tablets and phones, one large centred window above. */
    @media (max-width: 1279px) {
        .fi-modal > .fi-modal-window-ctn { grid-template-rows: 1fr !important; padding: 0 !important; }
        .fi-modal > .fi-modal-window-ctn > .fi-modal-window.dealer-workspace-modal { width: 100vw !important; max-width: none !important; min-height: 100dvh; max-height: 100dvh !important; margin: 0 !important; border-radius: 0!important; overflow-y: auto; }
        .dealer-workspace-modal .dealer-modal-full-btn { display: none; }
        .dealer-workspace-modal .fi-modal-header:has(> .dealer-modal-full-btn) { padding-inline-end: 3.75rem; }
    }

    /* Phones: every dialog full screen (slide-overs too keep the whole width); no full-screen button needed. */
    @media (max-width: 767px) {
        .fi-modal:not(.fi-modal-slide-over) > .fi-modal-window-ctn { grid-template-rows: 1fr !important; padding: 0 !important; }
        .fi-modal:not(.fi-modal-slide-over) > .fi-modal-window-ctn > .fi-modal-window { width: 100vw !important; max-width: none !important; min-height: 100dvh; max-height: 100dvh !important; margin: 0 !important; border-radius: 0!important; overflow-y: auto; }
        .fi-modal:not(.fi-modal-slide-over) .fi-modal-header { padding-top: calc(env(safe-area-inset-top, 0px) + 1rem); }
        .fi-modal:not(.fi-modal-slide-over) .fi-modal-window { display: flex; flex-direction: column; }
        .fi-modal:not(.fi-modal-slide-over) .fi-modal-footer { margin-top: auto; padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1rem); }
        .dealer-modal-full-btn { display: none !important; }
        .fi-modal-header:has(> .dealer-modal-full-btn) { padding-inline-end: 3.75rem; }
    }

    /* Parts of a document dialog that only hold an overlay or a key: no row, no gap in the form's grid (every dialog starts at the same place). */
    .fi-grid-col:has(> .fi-sc-component > .dd-zero) { position: absolute; width: 0; height: 0; overflow: visible; }

    /* Customer in front of the screen: no notifications, nothing internal (errors stay visible). */
    body:has(.fi-modal-open .dealer-sign-customer) .fi-topbar-database-notifications-btn,
    body:has(.fi-modal-open .dealer-sign-customer) .fi-no-database,
    body:has(.fi-modal-open .dealer-sign-customer) .fi-no-notification:not(.fi-color-danger) { display: none !important; }

    /* Motion of dialogs (08.11.2026): opening eases out (fast start, soft landing), closing is quicker and eases in.
       Centred dialogs rise a little and settle; panels from the right slide in like a sheet; their header, content and
       footer follow a moment later. Only transform and opacity move. Full screen morphs (modal-fullscreen.js). */
    :root { --dm-out: cubic-bezier(.16, 1, .3, 1); --dm-in: cubic-bezier(.4, 0, 1, 1); }
    html .fi-modal > .fi-modal-window-ctn > .fi-modal-window.fi-transition-enter { transition-property: translate, scale, opacity; transition-duration: .34s, .34s, .2s; transition-timing-function: var(--dm-out), var(--dm-out), ease-out; }
    html .fi-modal > .fi-modal-window-ctn > .fi-modal-window.fi-transition-leave { transition-property: translate, scale, opacity; transition-duration: .18s, .18s, .16s; transition-timing-function: var(--dm-in), var(--dm-in), ease-in; }
    html .fi-modal:not(.fi-modal-slide-over) > .fi-modal-window-ctn > .fi-modal-window.fi-transition-enter-start { opacity: 0; scale: .96; translate: 0 .75rem; }
    html .fi-modal:not(.fi-modal-slide-over) > .fi-modal-window-ctn > .fi-modal-window.fi-transition-leave-end { opacity: 0; scale: .98; translate: 0 .375rem; }
    html .fi-modal:not(.fi-modal-slide-over) > .fi-modal-window-ctn > .fi-modal-window:is(.fi-transition-enter-end, .fi-transition-leave-start) { opacity: 1; scale: 1; translate: 0 0; }
    html .fi-modal.fi-modal-slide-over > .fi-modal-window-ctn > .fi-modal-window.fi-transition-enter { transition-duration: .42s, .42s, .2s; transition-timing-function: cubic-bezier(.32, .72, 0, 1); }
    html .fi-modal.fi-modal-slide-over > .fi-modal-window-ctn > .fi-modal-window.fi-transition-leave { transition-duration: .24s, .24s, .2s; }
    .fi-modal.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > :is(.fi-modal-header, .fi-modal-content, .fi-modal-footer) { animation: dm-follow .4s var(--dm-out) both; }
    .fi-modal.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > .fi-modal-content { animation-delay: .05s; }
    .fi-modal.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > .fi-modal-footer { animation-delay: .1s; }
    .fi-modal.fi-modal-slide-over.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > :is(.fi-modal-header, .fi-modal-content, .fi-modal-footer) { animation-name: dm-follow-side; animation-delay: .08s; }
    .fi-modal.fi-modal-slide-over.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > .fi-modal-content { animation-delay: .13s; }
    .fi-modal.fi-modal-slide-over.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > .fi-modal-footer { animation-delay: .18s; }
    @keyframes dm-follow { from { opacity: 0; translate: 0 .375rem; } }
    @keyframes dm-follow-side { from { opacity: 0; translate: 1.5rem 0; } }
    /* full screen on and off: the window grows to the edges and back (a view transition; without one it just switches) */
    ::view-transition-group(dealer-modal) { animation-duration: .34s; animation-timing-function: var(--dm-out); }
    ::view-transition-old(dealer-modal), ::view-transition-new(dealer-modal) { animation-duration: .2s; height: 100%; object-fit: cover; object-position: top left; }
    ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
    @media (prefers-reduced-motion: reduce) {
        html .fi-modal > .fi-modal-window-ctn > .fi-modal-window:is(.fi-transition-enter, .fi-transition-leave) { transition-duration: .01s !important; }
        .fi-modal.fi-modal-open > .fi-modal-window-ctn > .fi-modal-window > * { animation: none !important; }
        ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
    }
