body.generator-viewport { overflow: hidden; }
#mainForm[data-viewport-fit] {
    position: fixed;
    inset-inline: 0;
    top: var(--generator-top, 0px);
    height: var(--generator-height, 100dvh);
    min-height: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#mainForm[data-viewport-fit] > .topbar { position: relative; top: auto; flex: 0 0 auto; padding-block: 8px; min-height: 60px; }
#mainForm[data-viewport-fit] > .desk-grid { flex: 1 1 0; min-height: 0; overflow: hidden; align-items: stretch; padding-block: 12px; gap: 16px; }
#mainForm[data-viewport-fit] .desk-main { min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 16px 20px !important; scroll-padding-block: 16px; scrollbar-width: thin; overscroll-behavior-y: contain; }
#mainForm[data-viewport-fit] .screen--wizard { min-height: 0; }
#mainForm[data-viewport-fit] .wiz-body { padding: 0; overflow: visible; }
#mainForm[data-viewport-fit] .wiz-body > .h2:first-of-type { margin: 0 0 8px !important; font-size: 1.25rem; line-height: 1.3; }
#mainForm[data-viewport-fit] .wiz-body > .body-text { margin: 0 0 12px; line-height: 1.45; }
#mainForm[data-viewport-fit] .field { margin-bottom: 10px; }
#mainForm[data-viewport-fit] .field__label { margin-bottom: 4px; letter-spacing: .06em; line-height: 1.3; }
#mainForm[data-viewport-fit] .field__input, #mainForm[data-viewport-fit] .field__select { min-height: 44px; padding: 10px 12px; font-size: 16px; line-height: 1.35; }
#mainForm[data-viewport-fit] .field--row, #mainForm[data-viewport-fit] .field--row--3 { gap: 10px; }
#mainForm[data-viewport-fit] .check-row { min-height: 36px; margin-block: 4px; padding-block: 4px; }
#mainForm[data-viewport-fit] .check-row .body-text { margin: 0; line-height: 1.35; }
#mainForm[data-viewport-fit] .group { margin-block: 12px; }
#mainForm[data-viewport-fit] .desk-side, #mainForm[data-viewport-fit] .desk-preview { position: relative; top: auto; min-height: 0; max-height: 100%; overflow-y: auto; }
#mainForm[data-viewport-fit] .desk-stepper__item { padding-block: 10px; }
#mainForm[data-viewport-fit] > .botbar { position: relative; inset: auto; flex: 0 0 auto; padding-block: 8px max(8px, env(safe-area-inset-bottom, 0px)); transition: none; }
#mainForm[data-viewport-fit] .botbar__buttons > button { min-height: 48px; padding-block: 10px; }
#mainForm[data-viewport-fit] .tpl-carousel { margin: 0; gap: 10px; }
#mainForm[data-viewport-fit] .tpl { padding: 10px; }
#mainForm[data-viewport-fit] .tpl .tpl__thumb { height: clamp(110px, 27dvh, 220px); aspect-ratio: auto; }
#mainForm[data-viewport-fit] .tpl .tpl__thumb img { width: 100%; height: 100%; object-fit: contain; }
#mainForm[data-viewport-fit] .tpl .tpl__name { overflow-wrap: normal; word-break: normal; }
@media (min-width: 1100px) {
    #mainForm[data-viewport-fit] > .desk-grid { grid-template-columns: 210px minmax(0, 1fr) 270px; max-width: 1440px; }
    #mainForm[data-viewport-fit] .botbar__row { grid-template-columns: 210px minmax(0, 1fr) 270px; max-width: 1440px; gap: 16px; }
    #mainForm[data-viewport-fit] .tpl { flex: 1 1 0; min-width: 0; max-width: none; }
}
@media (max-width: 1099px) {
    #mainForm[data-viewport-fit] > .desk-grid { padding: 0; }
    #mainForm[data-viewport-fit] .desk-main { border-radius: 0; border: 0; padding: 12px 16px !important; }
    #mainForm[data-viewport-fit] .topbar { padding-top: max(8px, env(safe-area-inset-top, 0px)); }
}
@media (max-width: 519px) {
    #mainForm[data-viewport-fit] .tpl-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
    #mainForm[data-viewport-fit] .tpl { flex: 0 0 76%; min-width: 220px; max-width: 280px; scroll-snap-align: center; }
    #mainForm[data-viewport-fit] .tpl .tpl__thumb { height: clamp(120px, 26dvh, 210px); }
    #mainForm[data-viewport-fit] .field--row--3 { grid-template-columns: minmax(0, 1.4fr) minmax(65px, .7fr) minmax(0, 1fr); }
    #mainForm[data-generator-product="form1099misc"] #create-3 .field--row:not(.field--row--3) { grid-template-columns: 1fr; }
    #mainForm[data-viewport-fit][data-keyboard-open] > .topbar { min-height: 44px; padding-block: 4px; }
    #mainForm[data-viewport-fit][data-keyboard-open] > .botbar { padding-block: 6px; }
    #mainForm[data-viewport-fit][data-keyboard-open] #topbar-progress { display: none; }
}
#mainForm[data-viewport-fit] #topbar-progress { height: 4px; min-height: 4px; padding: 0; margin: 24px 0 0; }
#mainForm[data-viewport-fit] .topbar__step-label { top: 12px; }
@media (min-width: 760px) {
    #mainForm[data-viewport-fit] :is(#create-1, #create-2, #create-3) .group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; padding: 12px; }
    #mainForm[data-viewport-fit] :is(#create-1, #create-2, #create-3) .group > :is(.field--row, .f1099-saved-chips, .section-label, details, .alert, .body-text) { grid-column: 1 / -1; }
}
@media (max-width: 519px) {
    #mainForm[data-viewport-fit] #topbar-progress { margin: 4px 0 0; }
}
#mainForm[data-viewport-fit] .generator-options { border: 1px solid var(--glass-border); border-radius: 14px; margin-top: 12px; padding: 12px 16px; background: var(--glass-strong); }
#mainForm[data-viewport-fit] .generator-options > summary { cursor: pointer; min-height: 24px; font-weight: 700; line-height: 1.5; }
#mainForm[data-viewport-fit] .generator-options > summary span { font-weight: 400; color: var(--text-secondary); margin-left: 8px; font-size: .8rem; }
#mainForm[data-viewport-fit] .generator-options[open] > summary { margin-bottom: 12px; }
#mainForm[data-viewport-fit] .generator-options > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
#mainForm[data-viewport-fit] [data-paydate-list] { gap: 8px; }
#mainForm[data-viewport-fit] .paydate-row__head { padding: 6px 12px; min-height: 56px; }
#mainForm[data-viewport-fit] #create-5 .h2 { margin-block: 12px !important; }
#mainForm[data-viewport-fit] #create-6 .s6-carousel__frame { max-height: 30dvh; }
@media (min-width: 760px) {
    #mainForm[data-generator-product="paystub"] #create-5 .group { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 20px; padding: 12px; }
    #mainForm[data-generator-product="paystub"] #create-5 .group > .field { margin: 0 !important; }
}
@media (min-width: 1100px) { #mainForm[data-viewport-fit] #s6Carousel { display: none; } }
#mainForm[data-viewport-fit] .f1099-saved-chips:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 10px; padding: 0; }
#mainForm[data-viewport-fit] .f1099-saved-chips__label { margin: 0; }
@media (min-width: 760px) { #mainForm[data-viewport-fit] .generator-payer-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 759px) { #mainForm[data-viewport-fit] .generator-payer-tin { grid-column: 1 / -1; } }
#mainForm[data-viewport-fit] .f1099-saved-chips:not([hidden]) { flex-direction: row; justify-content: flex-start; text-align: left; }
