.selection-modal__groups{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-md) 0}.selection-modal__group{display:flex;flex-direction:column;gap:var(--spacing-md)}.selection-modal__group-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.selection-modal__group-name{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--gray-900)}.selection-modal__required-asterisk{color:var(--color-error);margin-left:var(--spacing-xs);font-size:var(--font-size-lg)}.selection-modal__optional-label{color:var(--gray-500);margin-left:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.selection-modal__group-hint{font-size:var(--font-size-sm);color:var(--gray-600);margin:0}.selection-modal__options{display:flex;flex-direction:column;gap:var(--spacing-sm)}.selection-modal__option{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:2px solid var(--gray-200);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:all var(--transition-base);width:100%;text-align:left}.selection-modal__option:hover,.selection-modal__option--selected{border-color:var(--menu-primary);background:var(--gray-50)}.selection-modal__option-check{flex-shrink:0;display:flex;align-items:center;justify-content:center}.selection-modal__radio{width:20px;height:20px;border:2px solid var(--gray-300);border-radius:50%;position:relative;transition:all var(--transition-base)}.selection-modal__radio--checked{border-color:var(--menu-primary);background:var(--menu-primary)}.selection-modal__radio--checked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:#fff}.selection-modal__checkbox{width:20px;height:20px;border:2px solid var(--gray-300);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.selection-modal__checkbox--checked{border-color:var(--menu-primary);background:var(--menu-primary);color:#fff}.selection-modal__option-name{flex:1;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--gray-800)}.selection-modal__option-price{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--menu-primary)}.selection-modal__error{padding:var(--spacing-md);background:var(--color-error-light);color:var(--color-error);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0;text-align:center}.selection-modal__footer{display:flex;justify-content:stretch}.selection-modal__footer .p-button{flex:1}.cart-button-wrapper{position:relative}.cart-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-slow);position:relative;overflow:hidden}.cart-button--add{background:linear-gradient(var(--menu-gradient-angle),var(--menu-gradient-from) 0%,var(--menu-gradient-to) 100%);color:var(--menu-text-primary, #ffffff);border:1px solid var(--menu-emphasis, var(--menu-primary));box-shadow:var(--menu-shadow-button, var(--shadow-button))}.cart-button--add:hover{transform:translateY(-2px);box-shadow:var(--menu-shadow-button-hover, var(--shadow-button-hover))}.cart-button--add:active{transform:translateY(0)}.cart-button--remove{background:transparent;color:var(--color-error);border:1px solid var(--color-error);padding:var(--spacing-sm);width:36px;height:36px;border-radius:var(--radius-md)}.cart-button--remove:hover{background:var(--color-error-light)}.cart-button--sold-out{background:var(--gray-100);color:var(--gray-400);border:1px solid var(--gray-200);cursor:not-allowed;opacity:.8}.cart-button--sold-out:hover{transform:none;box-shadow:none}.cart-button .icon{width:20px;height:20px}.cart-button--sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);gap:var(--spacing-xs)}.cart-button--sm.cart-button .icon{width:14px;height:14px}.cart-button-quantity-control--sm{gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.cart-button-quantity-control--sm .quantity-btn{padding:var(--spacing-xs)}.cart-button-quantity-control--sm .quantity-icon{width:14px;height:14px}.cart-button-quantity-control--sm .quantity-display{font-size:var(--font-size-sm);min-width:1.5rem}.cart-button-quantity-control--sm .cart-button--remove{width:28px;height:28px;padding:var(--spacing-xs)}.cart-button-quantity-control--sm .cart-button--remove .icon{width:14px;height:14px}.button-text{display:none}@media(min-width:640px){.button-text{display:inline}}.cart-button-quantity-control{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--menu-card-bg, white);border:2px solid var(--menu-emphasis, var(--menu-primary));border-radius:var(--radius-lg);padding:var(--spacing-sm);animation:slideIn var(--transition-slow) ease}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.cart-button .quantity-btn{background:transparent;border:none;cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);color:var(--menu-emphasis, var(--menu-primary))}.cart-button .quantity-btn:hover{background:var(--menu-surface, var(--gray-100))}.quantity-icon{width:18px;height:18px}.quantity-display{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);min-width:2rem;text-align:center;color:var(--menu-text, var(--gray-800))}.cart-notification{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);background:var(--menu-card-bg, white);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-sm);box-shadow:var(--shadow-notification);display:flex;align-items:center;gap:var(--spacing-md);animation:notificationSlide var(--transition-slow) ease;white-space:nowrap;z-index:10}@keyframes notificationSlide{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(-8px)}}.cart-notification--success{border-left:4px solid var(--color-success);background:var(--color-success-light)}.notification-icon{width:18px;height:18px;color:var(--color-success);flex-shrink:0}.notification-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-success)}
