.fs-layout-columns { column-gap: 1rem; }
.fs-layout-columns .fs-choice { display: block; break-inside: avoid; }
.fs-layout-likert .fs-choice { display: inline-flex; flex-direction: column; align-items: center; margin-right: 1rem; }
.fs-layout-tablelist .fs-choice { display: inline-block; text-align: center; min-width: 5rem; }
.fs-layout-quick .fs-choice, .fs-layout-minimal .fs-choice { display: block; }
.fs-layout-nobuttons .fs-choice input { position: absolute; opacity: 0; }
.fs-layout-nobuttons .fs-choice { display: inline-block; border: 1px solid #888; border-radius: 4px; padding: .5rem 1rem; margin: .25rem; }
.fs-layout-listnolabel .fs-choice { display: inline-flex !important; margin-right: 0.5rem; }
.fs-layout-listnolabel .fs-choice input { margin-right: 0.4rem; }
.fs-vertical { writing-mode: vertical-lr; direction: rtl; height: 10rem; }
.fs-star { background: none; border: 0; font-size: 1.5rem; }

.fs-label-image {
    display: block; max-width: 100%; max-height: 240px; width: auto; height: auto;
    margin: 0.5rem auto; object-fit: contain;
}

.fs-image-thumbnail {
    display: block; width: 160px; height: 120px; max-width: 100%;
    margin-top: .75rem; object-fit: contain;
    border: 1px solid var(--fs-border); border-radius: 12px;
    background: var(--fs-primary-soft);
}

.fs-location-loading {
    display: flex; align-items: center; gap: 1rem;
    margin: .75rem 0; padding: 1rem;
    border: 1px solid var(--fs-border); border-radius: var(--fs-radius);
    background: var(--fs-primary-soft);
}
.fs-location-pulse {
    position: relative; flex: 0 0 44px; height: 44px;
    display: grid; place-items: center; border-radius: 50%;
    background: var(--fs-primary-light); color: var(--fs-primary-dark);
}
.fs-location-pulse::before {
    content: ""; position: absolute; inset: 0; border-radius: inherit;
    border: 1px solid var(--fs-primary);
    animation: fs-location-pulse 1.8s ease-out infinite;
}
.fs-location-pulse svg { width: 26px; height: 26px; }
.fs-location-loading-content { flex: 1; min-width: 0; }
.fs-location-loading-title { display: block; font-size: .9rem; font-weight: 650; }
.fs-location-loading-hint { display: block; margin-top: .15rem; font-size: .8rem; color: var(--fs-muted); }
.fs-location-skeleton { display: flex; margin-top: .65rem; max-width: 240px; }
.fs-location-skeleton span {
    height: 8px; flex: 1; border-radius: 999px;
    background: linear-gradient(90deg, var(--fs-border) 0%, var(--fs-surface) 50%, var(--fs-border) 100%);
    background-size: 200% 100%;
    animation: fs-location-shimmer 1.6s linear infinite;
}
@keyframes fs-location-shimmer {
    from { background-position: 0% 0; }
    to { background-position: -200% 0; }
}
@keyframes fs-location-pulse {
    from { transform: scale(1); opacity: .6; }
    to { transform: scale(1.5); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .fs-location-pulse::before, .fs-location-skeleton span { animation: none; }
}
