.option-extra{color:var(--accent);font-weight:700;white-space:nowrap}.ff-media-wrap{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.ff-media-wrap .ff-media-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ff-media-wrap .material-icons{position:relative;opacity:.75}.ff-media-wrap[data-tone=red]{background:color-mix(in srgb,#ff3b30 12%,var(--bg-2, var(--bg-tertiary)))}.ff-media-wrap[data-tone=red] .material-icons{color:#d92d20}.ff-media-wrap[data-tone=green]{background:color-mix(in srgb,#1fa463 12%,var(--bg-2, var(--bg-tertiary)))}.ff-media-wrap[data-tone=green] .material-icons{color:#1fa463}.ff-media-wrap[data-tone=blue]{background:color-mix(in srgb,#2e70e8 12%,var(--bg-2, var(--bg-tertiary)))}.ff-media-wrap[data-tone=blue] .material-icons{color:#2e70e8}.ff-media-wrap[data-tone=purple]{background:color-mix(in srgb,#6f50d6 14%,var(--bg-2, var(--bg-tertiary)))}.ff-media-wrap[data-tone=purple] .material-icons{color:#6f50d6}.ff-media-wrap[data-tone=orange]{background:color-mix(in srgb,#e8800c 14%,var(--bg-2, var(--bg-tertiary)))}.ff-media-wrap[data-tone=orange] .material-icons{color:#b8650a}.p-img.ff-media-wrap .material-icons{font-size:34px}.option-img.ff-media-wrap .material-icons{font-size:24px}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;background:#0000008c;padding:var(--sp-4)}.modal-content{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-body{flex:1;overflow-y:auto}.modal-header{padding:var(--sp-5);border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center}.modal-header-info{flex:1}.modal-header-info h3{margin:0;font-size:var(--fs-lg)}.modal-header-info p{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-tertiary)}.modal-body{flex:1;overflow-y:auto;padding:0}.modal-footer{padding:15px var(--sp-5);border-top:1px solid var(--border-primary);background:var(--bg-secondary);display:flex;justify-content:flex-end}.btn-modal-next{padding:10px 20px;background:var(--text-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);font-weight:var(--fw-bold);font-size:var(--fs-sm);cursor:pointer;display:flex;align-items:center;gap:6px;transition:var(--dur-slow)}.btn-modal-next:disabled{opacity:.5;cursor:not-allowed}.modal-steps-nav{display:flex;padding:var(--sp-3) var(--sp-5);gap:var(--sp-2);overflow-x:auto;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);scrollbar-width:none}.modal-step-pill{padding:6px 14px;border-radius:var(--radius-xl);font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap;background:var(--bg-tertiary);color:var(--text-tertiary);border:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:var(--sp-1);transition:var(--dur-std)}.modal-step-pill.active{border-color:var(--accent);color:var(--accent);background:#ff3b3014}.modal-step-pill.done{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-step-pill .pill-num{width:20px;height:20px;border-radius:50%;background:var(--border-primary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--fw-bold)}.modal-step-pill.active .pill-num{background:var(--accent);color:#fff}.modal-step-pill.done .pill-num{background:#ffffff4d}.step-section{padding:var(--sp-5)}.step-title{font-size:var(--fs-md);font-weight:var(--fw-bold);margin-bottom:5px;display:flex;align-items:center;gap:var(--sp-2)}.step-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:15px}.option-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:2px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:10px;cursor:pointer;transition:var(--dur-std);background:var(--bg-card)}.option-item:hover{border-color:var(--text-tertiary)}.option-item.selected{border-color:var(--accent);background:#ff3b300d;box-shadow:0 0 0 1px var(--accent)}.option-img{width:60px;height:60px;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-tertiary);flex-shrink:0}.option-info{flex:1}.option-name{font:700 13.5px/1.2 var(--font-ui);color:var(--fg-1, var(--text-primary));letter-spacing:-.2px}.option-desc{font:400 11.5px/1.45 var(--font-ui);color:var(--fg-2, var(--text-tertiary));margin-top:2px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.option-price{font-size:var(--fs-sm);color:var(--accent);font-weight:var(--fw-bold);margin-top:2px}.radio-circle{width:22px;height:22px;border:2px solid var(--border-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.option-item.selected .radio-circle{border-color:var(--accent);background:var(--accent)}.radio-inner{width:10px;height:10px;background:#fff;border-radius:50%;display:none}.option-item.selected .radio-inner{display:block}.btn-add-cart{width:100%;padding:15px;background:var(--text-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);font-weight:var(--fw-bold);font-size:var(--fs-md);cursor:pointer;opacity:1;transition:var(--dur-slow)}.btn-add-cart:disabled{opacity:.5;cursor:not-allowed}.btn-add-cart.pulse-ready{animation:pulseReady .5s ease;background:var(--accent);color:var(--bg-1)}@keyframes pulseReady{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.customize-chip{display:inline-flex;align-items:center;gap:6px;padding:var(--sp-2) 14px;border-radius:var(--radius-xl);font-size:var(--fs-sm);font-weight:var(--fw-semi);cursor:pointer;transition:var(--dur-std);user-select:none;border:1.5px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary)}.customize-chip.active{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)}.customize-chip.disabled{opacity:.5;cursor:default;background:var(--bg-tertiary);border-color:var(--border-primary)}.customize-chip .material-icons{font-size:var(--fs-md)}.customize-chip-ico{opacity:.9}.customize-chip-state{font-size:15px!important;opacity:.7;margin-left:2px}.customize-chip.active .customize-chip-state{opacity:1}.customize-removed-label{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:3px}#ff-config-modal .modal-content,#ff-customize-modal .modal-content,#ff-line-pick-modal .modal-content{height:auto!important}.p-allergen{display:block;margin-top:var(--sp-1);font-size:var(--fs-xs);line-height:1.4;border-radius:var(--radius-sm);padding:2px 6px}.p-allergen-list{color:var(--accent-warning, #ff9f0a);background:#ff9f0a14}.p-allergen-clean{color:#2a8c4f;background:#2a8c4f14}.p-allergen-warn{color:var(--accent, var(--accent));background:#ff3b3014;font-weight:var(--fw-semi)}.ff-line-pick .option-item{cursor:pointer}.ff-line-pick .option-qty{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-tertiary);white-space:nowrap}.ff-line-pick .option-desc{-webkit-line-clamp:2}.ing-removed{text-decoration:line-through;color:var(--text-tertiary);opacity:.8}.customize-product{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) 0}.customize-product .option-img{width:56px;height:56px}.customize-product-name{font-weight:var(--fw-bold);font-size:var(--fs-md)}.customize-product-price{font-size:var(--fs-sm);color:var(--text-tertiary)}.option-customize{margin:-4px 0 12px;padding:10px 12px;border:1px dashed var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-secondary)}.option-customize-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--fs-sm);font-weight:var(--fw-bold);margin-bottom:8px}.option-customize-title .material-icons{font-size:16px;color:var(--accent)}.option-customize-hint{font-weight:400;color:var(--text-tertiary);font-size:var(--fs-xs)}.option-customize-chips{display:flex;flex-wrap:wrap;gap:6px}.customize-chip--sm{padding:4px 10px;font-size:var(--fs-xs);gap:4px}.customize-chip--sm .material-icons{font-size:14px}
