.apfl-fields { margin: 18px 0; padding: 16px; border: 1px solid #eaeaea; border-radius: 8px; background: #fafafa; }
.apfl-field { margin-bottom: 14px; }
.apfl-label { display: block; font-weight: 600; margin-bottom: 4px; }
.apfl-required { color: #c00; }
.apfl-desc { color: #666; font-size: 12px; margin: 0 0 6px; }
.apfl-fields input[type=text],.apfl-fields input[type=email],.apfl-fields input[type=url],.apfl-fields input[type=tel],.apfl-fields input[type=password],.apfl-fields input[type=number],.apfl-fields input[type=date],.apfl-fields input[type=time],.apfl-fields select,.apfl-fields textarea { width: 100%; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
.apfl-fields textarea { min-height: 80px; }
.apfl-opt { display: block; margin: 4px 0; }
.apfl-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.apfl-swatch { display: inline-flex; flex-direction: column; align-items: center; cursor: pointer; }
.apfl-swatch input { display: none; }
.apfl-swatch-chip { width: 44px; height: 44px; border-radius: 6px; border: 2px solid #ccc; background-size: cover; background-position: center; }
.apfl-swatch input:checked + .apfl-swatch-chip { border-color: #2271b1; box-shadow: 0 0 0 2px rgba(34,113,177,.25); }
.apfl-swatch-label { font-size: 11px; margin-top: 4px; }
.apfl-running-total { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #ccc; font-size: 16px; font-weight: 600; }
.apfl-artwork .apfl-art-mode { display: block; margin: 6px 0 2px; font-weight: 600; }
.apfl-artwork .apfl-art-pane { padding: 8px 0 12px 22px; }
.apfl-art-fee { color: #2271b1; font-weight: 500; }
.apfl-content img { max-width: 100%; height: auto; }
.apfl-separator { border: 0; border-top: 1px solid #ddd; margin: 14px 0; }
