.fsm-po-fields,.fsm-po-block{width:100%;margin:1em 0;text-align:left;color:inherit;font:inherit}.fsm-po-field{margin:0 0 1.2em}.fsm-po-field[hidden]{display:none!important}.fsm-po-field>label,.fsm-po-field-label{display:block;margin-bottom:.4em;font-weight:600}.fsm-po-field input[type=text],.fsm-po-field input[type=number],.fsm-po-field input[type=date],.fsm-po-field textarea,.fsm-po-field select{box-sizing:border-box;width:100%;max-width:100%;padding:.7em;border:1px solid #bbb;border-radius:4px;background:#fff;color:#222;font:inherit}.fsm-po-field .fsm-po-check{display:flex;align-items:baseline;gap:.5em;font-weight:400}.fsm-po-field input[type=checkbox],.fsm-po-field input[type=radio]{appearance:auto!important;width:auto;height:auto;flex-shrink:0}.fsm-po-field small{display:block;font-size:.875em;margin-top:.35em}.fsm-po-price{font-size:.85em;font-weight:400}.fsm-po-error{color:#a00}.fsm-po-error:empty{display:none}.fsm-po-upload-status{display:block;font-size:.9em}.fsm-po-remove-upload{background:none;border:0;text-decoration:underline;cursor:pointer;padding:.35em 0;font:inherit;font-size:.85em}.fsm-po-order dd{margin:0 0 .7em}.fsm-po-block label{color:inherit}
.fsm-po-swatches{display:flex;flex-wrap:wrap;gap:10px}.fsm-po-swatch{position:relative;display:block;cursor:pointer;margin:0!important;max-width:150px}.fsm-po-field .fsm-po-swatch input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;left:8px;top:8px}.fsm-po-swatch-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:2px solid #c9c9c9;border-radius:6px;background:#fff;color:#222;text-align:center;font-size:.9em;min-width:76px;box-sizing:border-box;height:100%}.fsm-po-swatch-card img{display:block;width:84px;height:84px;object-fit:contain;margin:0}.fsm-po-colour-chip{display:block;width:62px;height:62px;border:1px solid #999;border-radius:50%}.fsm-po-swatch input:checked+.fsm-po-swatch-card{border-color:#222;box-shadow:0 0 0 1px #222}.fsm-po-swatch input:focus-visible+.fsm-po-swatch-card{outline:3px solid #1769aa;outline-offset:3px}.fsm-po-swatch input:disabled+.fsm-po-swatch-card{opacity:.5}
.fsm-po-preview{width:100%;max-width:640px;margin:1em 0 1.5em;font:inherit;color:inherit}.fsm-po-preview figcaption{font-weight:600;margin-bottom:.65em}.fsm-po-preview-stage{position:relative;overflow:hidden;width:100%;aspect-ratio:1;background:#fff;border:1px solid #ddd;box-sizing:border-box}.fsm-po-preview-stage[hidden]{display:none!important}.fsm-po-preview-stage img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none!important;object-fit:contain;margin:0!important;padding:0!important;border:0!important;border-radius:0;box-shadow:none!important;box-sizing:border-box}.fsm-po-preview-status{font-size:.9em;margin:.5em 0!important}.fsm-po-preview small{display:block;font-size:.8em}.fsm-po-saved-preview{object-fit:contain}
@media(max-width:480px){.fsm-po-swatches{gap:7px}.fsm-po-swatch{max-width:110px}.fsm-po-swatch-card{padding:5px;font-size:.8em}.fsm-po-swatch-card img{width:66px;height:66px}}

/* Keep personalisation on its own row inside flex-based Add to Cart forms. */
.fsm-po-product-options{display:block;box-sizing:border-box;width:100%;min-width:0;flex:0 0 100%;clear:both}
form.cart:has(> .fsm-po-product-options){flex-wrap:wrap}
.fsm-po-print-preview{width:100%;max-width:640px;margin:1em 0 1.5em;color:inherit}.fsm-po-print-preview figcaption{font-weight:600;margin-bottom:.65em}.fsm-po-print-tabs{display:flex;gap:8px;margin-bottom:12px}.fsm-po-print-tabs button{padding:8px 18px;border:1px solid #aaa;background:#fff;color:#222;cursor:pointer}.fsm-po-print-tabs button[aria-pressed=true]{background:#222;color:#fff}.fsm-po-print-status{font-size:.9em}.fsm-po-print-preview small{font-size:.8em}.fsm-po-live-total{padding:12px;background:#f5f5f5;color:#222;font-weight:600}.fsm-po-incompatible{opacity:.55}

/* Shared personalisation design. Override --fsm-po-accent on the module to match a site. */
.fsm-po-fields,.fsm-po-block,.fsm-po-print-preview,.fsm-po-preview{--fsm-po-ink:#253b37;--fsm-po-line:#dbe5e1;--fsm-po-soft:#f1f7f4;--fsm-po-radius:16px;--fsm-po-highlight:var(--fsm-po-accent,var(--et-global-color-primary,#315f57))}
.fsm-po-fields,.fsm-po-block{color:#253b37;line-height:1.5}
.fsm-po-field input[type=text],.fsm-po-field input[type=number],.fsm-po-field input[type=date],.fsm-po-field textarea,.fsm-po-field select{border-color:var(--fsm-po-line);border-radius:12px;padding:12px 14px;min-height:46px;box-shadow:none}
.fsm-po-field input:focus-visible,.fsm-po-field textarea:focus-visible,.fsm-po-field select:focus-visible,.fsm-po-fields button:focus-visible,.fsm-po-print-tabs button:focus-visible{outline:3px solid var(--fsm-po-highlight);outline-offset:3px}
.fsm-po-field input[type=checkbox],.fsm-po-field input[type=radio]{accent-color:var(--fsm-po-highlight);min-width:18px;min-height:18px}
.fsm-po-swatch-card{border-radius:var(--fsm-po-radius);border-color:var(--fsm-po-line);padding:10px;gap:9px;transition:border-color .15s,box-shadow .15s}
.fsm-po-swatch-card img{border-radius:10px}
.fsm-po-swatch input:checked+.fsm-po-swatch-card{border-color:var(--fsm-po-highlight);box-shadow:0 0 0 1px var(--fsm-po-highlight);background:var(--fsm-po-soft)}
.fsm-po-preview-stage{border-radius:20px;border-color:var(--fsm-po-line)}
.fsm-po-print-tabs{display:inline-flex;padding:5px;border-radius:999px;background:var(--fsm-po-soft);gap:4px}
.fsm-po-print-tabs button{border:0;border-radius:999px;background:transparent;color:var(--fsm-po-ink);font:inherit;font-size:.9em;padding:8px 22px;min-height:42px}
.fsm-po-print-tabs button[aria-pressed=true]{background:var(--fsm-po-ink);color:#fff;box-shadow:0 2px 5px #253b371a}
.fsm-po-print-preview figcaption,.fsm-po-preview figcaption{color:var(--fsm-po-ink)}
.fsm-po-print-status{margin:12px 0 6px;line-height:1.5;color:#405b54}
.fsm-po-positions{margin:24px 0}
.fsm-po-positions h3{font:inherit;font-size:1.15em;font-weight:650;line-height:1.35;color:var(--fsm-po-ink);margin:0 0 6px;padding:0}
.fsm-po-positions-help{font-size:.88em;color:#536b63;margin:0 0 16px!important;padding:0!important}
.fsm-po-position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;align-items:start}
.fsm-po-position-card{min-width:0;box-sizing:border-box;border:1px solid var(--fsm-po-line);border-radius:var(--fsm-po-radius);padding:16px;background:#fff;box-shadow:0 3px 12px #253b3706;transition:border-color .15s,box-shadow .15s}
.fsm-po-position-card.is-selected{border-color:var(--fsm-po-highlight);box-shadow:0 0 0 1px var(--fsm-po-highlight);background:var(--fsm-po-soft)}
.fsm-po-position-card:focus-within{outline:2px solid var(--fsm-po-highlight);outline-offset:3px}
.fsm-po-position-card .fsm-po-field{margin:0}
.fsm-po-position-choice .fsm-po-check{display:grid!important;grid-template-columns:20px minmax(0,1fr);column-gap:10px;row-gap:5px;align-items:center;cursor:pointer;line-height:1.4;margin:0!important}
.fsm-po-position-choice input[type=checkbox]{grid-column:1;grid-row:1/3;align-self:start;margin:3px 0 0!important}
.fsm-po-position-name{grid-column:2;font-weight:650;font-size:.97em;overflow-wrap:anywhere}
.fsm-po-position-price{grid-column:2;font-size:.83em;font-weight:500;color:#536b63}
.fsm-po-position-choice>small:empty{display:none}
.fsm-po-position-card .fsm-po-position-upload{margin-top:15px;padding-top:14px;border-top:1px solid var(--fsm-po-line)}
.fsm-po-position-upload>label{font-size:.88em;font-weight:500}
.fsm-po-field .fsm-po-file-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.fsm-po-upload-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
.fsm-po-fields button.fsm-po-choose-upload,.fsm-po-fields button.fsm-po-remove-upload{font:inherit;font-size:.85em;line-height:1.3;min-height:42px;border-radius:10px;cursor:pointer;width:auto;margin:0;text-decoration:none}
.fsm-po-fields button.fsm-po-choose-upload{padding:10px 15px;background:var(--fsm-po-ink);border:1px solid var(--fsm-po-ink);color:#fff}
.fsm-po-fields button.fsm-po-remove-upload{padding:10px 12px;background:transparent;border:1px solid #bdcec7;color:var(--fsm-po-ink)}
.fsm-po-fields button.fsm-po-choose-upload:hover{background:#3c5b52}
.fsm-po-field img.fsm-po-upload-thumb{display:block;width:88px;height:88px;object-fit:contain;border-radius:12px;border:1px solid var(--fsm-po-line);background:#fff;padding:5px;margin:10px 0}
.fsm-po-fields [hidden]{display:none!important}
.fsm-po-upload-status{font-size:.82em;color:#405b54;overflow-wrap:anywhere}
.fsm-po-field small{font-size:.8em;color:#536b63}
.fsm-po-live-total{display:flex;flex-direction:column;gap:5px;padding:20px;border-radius:var(--fsm-po-radius);background:var(--fsm-po-soft);border:1px solid var(--fsm-po-line);color:var(--fsm-po-ink);font-weight:400}
.fsm-po-total-label{font-size:.8em;letter-spacing:.03em;font-weight:600}
.fsm-po-total-amount{font-size:1.5em;line-height:1.25;font-weight:650}
.fsm-po-total-quantity{font-size:.95em}
.fsm-po-live-total small{font-size:.78em;line-height:1.5;margin-top:6px;color:#536b63}
.fsm-po-position-card.fsm-po-incompatible{opacity:.5;box-shadow:none}
.fsm-po-position-card.fsm-po-incompatible .fsm-po-check{cursor:not-allowed}
@media(max-width:480px){.fsm-po-position-grid{grid-template-columns:1fr}.fsm-po-position-card{padding:14px}.fsm-po-live-total{padding:16px}}
@media(prefers-reduced-motion:reduce){.fsm-po-position-card,.fsm-po-swatch-card{transition:none}}

.fsm-po-preview-loading{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(255,255,255,.9);color:#263446;font-weight:600;min-height:100px}
.fsm-po-preview-loading:before{content:"";width:24px;height:24px;border:3px solid #dce4ec;border-top-color:#7457c8;border-radius:50%;animation:fsm-po-spin .8s linear infinite}
@keyframes fsm-po-spin{to{transform:rotate(360deg)}}
.fsm-po-view-tabs{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}
.fsm-po-view-tabs button,.fsm-po-preview-retry{border:1px solid #d5cce8;background:#fff;border-radius:12px;padding:12px 18px;cursor:pointer;color:#49346b;min-height:44px}
.fsm-po-view-tabs button[aria-pressed=true]{background:#eee7fa;border-color:#7457c8;box-shadow:0 0 0 1px #7457c8}
@media(prefers-reduced-motion:reduce){.fsm-po-preview-loading:before{animation:none}}

.fsm-po-view-tabs[hidden]{display:none!important}

/* Separate FSM options only; WooCommerce renders variation details independently. */
:is(.wc-block-cart,.wc-block-checkout) .wc-block-components-product-details > .fsm-po-cart-detail {
    display: block;
    margin-block: .2em;
    white-space: normal;
    overflow-wrap: anywhere;
}
:is(.wc-block-cart,.wc-block-checkout) .fsm-po-cart-detail > [aria-hidden="true"] { display: none; }
:is(.wc-block-cart,.wc-block-checkout) .fsm-po-cart-detail > .wc-block-components-product-details__name { font-weight: 600; }
/* The classic template uses adjacent dt/dd pairs for the same options. */
:is(.woocommerce-cart,.woocommerce-checkout) dl.variation dt:has(+ dd .fsm-po-cart-detail-value) {
    clear: both;
    float: left;
    margin-inline-end: .35em;
    font-weight: 600;
}
:is(.woocommerce-cart,.woocommerce-checkout) dl.variation dd:has(.fsm-po-cart-detail-value) {
    display: block;
    float: none;
    margin: 0 0 .2em;
    overflow-wrap: anywhere;
}
